前端周报专注大前端领域内容,以对外文资料的搜集为主,帮助开发者了解一周前端热点,分为新闻热点、深度阅读、开源项目 & 工具等栏目。欢迎关注【前端之巅】微信公众号(ID: frontshow),及时获取前端周报内容。
前端新闻
Vue 新语法糖引争议,网友:魔改 JavaScript,这是想挑战标准?
近日,Vue 作者尤雨溪在社区意见征求稿(RFC)上提交了一份 Ref 语法糖的提案,引起了开发者们的争议。
尤雨溪在该 Ref 语法糖的提案中加入了一个新的功能:在单个文件组件(SFC)中引入了新的 script 标签写法,写法为 < script setup> 。这种写法会自动将所有顶级变量声明公开给模板(template)使用。同时在 < script setup> 中引入了一个基于编译器的语法糖,用于消除 ref 的 value 属性,该语法糖在编译期间自动将语法糖转为正常代码。
VSCode 现内存泄漏 BUG,官方置若罔闻引不满
近日,有开发者提交了一个 VSCode 内存泄露的 issues,该问题导致在某些情况下使用 VSCode 会使内存使用率攀升。令人意外的是,VSCode 官方却表示不打算解决此问题,引起了社区开发者们的不满。
我们已关闭此问题,因为我们不打算在可预见的将来解决此问题。您可以在此处找到有关我们决策过程的更多详细信息。如果您不同意并认为此问题至关重要:我们很乐意倾听并重新考虑。
在被开发者们吐槽后, VSCode 的维护者终于出来修复了这一问题:
https://github.com/microsoft/vscode/issues/107999
Linux 之父:如果 M1 Mac 能运行 Linux ,我很愿意使用
在 Real World Technologies 论坛上,Linux 作者 Linus Torvalds 说如果 M1 Mac 能运行 Linux, 他非常乐意拥有一台。他说,苹果也许会在云端运行 Linux,但它的笔记本电脑无法运行 Linux。他指出将 Linux 移植运行在基于 M1 的苹果电脑上是不太可能的,主要原因是 GPU 以及其它硬件组件。苹果在软件方面与开源社区关系不错,但它从未向开源开发者披露硬件细节,他说,当然对此“你总可以满怀希望”。他说对处理器的核心数量更感兴趣,他不在乎有 20 小时的电池续航,但希望有更多核心。
微软 Win 10 或将于 2021 年支持原生运行 Android App
据 Windows Central 的报道,微软正在将 Android 应用引入 Windows 10 的 Microsoft Store,但具体的上线时间尚未确定,Windows Central 表示可能是 2021 年。微软希望 Windows 系统跑 Android 应用的愿景最早可以追溯到 2014 年,当时微软启动了 Android 应用移植项目"Project Astoria"和 iOS 应用移植项目"Project Islandwood",旨在为开发者提供将 Android 和 iOS 应用移植到 Windows 平台 (Windows Phone) 的简便方法。
但是,到 2015 年,微软正式放弃了应用移植项目,有两个原因:一是 Windows 开发者对微软的方案不满意;二是项目会引入“Android 子系统 (Android subsystem)”,并导致 Windows 10 Mobile 的运行速度变慢。不过,从 Windows Central 的消息来看,这显然不是“原生”支持 Android 应用的方案,更可能是允许用户通过 Microsoft Store 获取可原生运行的 Android 应用。
PHP 8.0 重大版本更新正式发布:支持 JIT 编译器,性能提升高达 3 倍
美国时间 11 月 26 日,PHP 团队宣布 PHP 8.0 正式 GA。PHP 8.0 是 PHP 语言的最新主要版本,带来了许多新特性和优化,包括命名参数(named arguments)、联合类型(union types)、属性(attributes)、构造器属性提升(constructor property promotion)、Match 表达式、nullsafe 运算符、JIT,以及针对类型系统、错误处理和一致性的诸多改进。
10 年前腾讯微信后台第一天提交的代码曝光
11 月 23 日,微信官方号公布了微信后台第一天提交的代码。腾讯官方称,这是在 2010 年 11 月 23 日凌晨,广州,一群年轻人在小黑屋里干下的。从此,人们的沟通方式变了。到今年 11 月 23 日,微信正式提交代码整整 10 年,微信也已成为一款全方位的手机通讯应用,帮助你轻松连接全球好友。
Android 12 将使操作系统更新更容易:可通过应用商店更新
XDA 开发者 luca020400 注意到,谷歌正在将 Android Runtime 转化为 Mainline 模块,使得通过 Play Store 向关键系统组件推送更新成为可能。如果谷歌想要改变 Android 12(以及之后版本)翻译代码的方式,可以在任何时候进行调整,而不用依靠传统的操作系统更新,用户不必为功能改进或安全修复等待数周或数月。
行业新闻
百度应用收集用户敏感数据被 Google 短暂下架
在安全公司 Palo Alto Networks 报告百度的 Android 应用百度地图和百度搜索框收集用户敏感数据之后,Google 在其应用商店 Google Play Store 下架了这两款应用。Palo Alto Networks 称,数据收集代码包括在百度应用内的通知系统 Baidu Push SDK 中,收集的信息包括了手机型号、MAC 地址、运营商信息以及 IMSI 号码。百度发言人否认数据收集行为是两款应用下架的原因,称百度应用获得了用户许可去收集这些数据。Google 团队在应用中发现的其它问题导致了其下架,百度正在解决这些问题。目前,百度搜索框已经恢复上架,而百度地图也将在问题解决之后很快上架。Palo Alto Networks 称,他们还在中国广告科技公司 MobTech 开发的 ShareSDK 中发现了类似的数据收集代码。
Microsoft Edge 扩展商店发现冒牌的恶意扩展
在 Google 和 Mozilla 之后,Microsoft Edge 扩展商店也发现了假的恶意扩展。Edge 用户过去几天报告,他们用 Google 搜索时被重定向到其它网站,调查之后他们发现安装了伪装成合法扩展的假扩展,这些假扩展包括 NordVPN、Adguard VPN、TunnelBear VPN、The Great Suspender 和 Floating Player — Picture-in-Picture Mode。他们的名字和合法扩展相同,但并非由合法扩展的开发商发布到 Edge 扩展商店的。微软表示正对此展开调查,相关扩展已经从商店里移除。合法扩展开发商发现,除了在 Edge 商店发现冒牌扩展,他们在 Chrome Web Store 里也发现了冒牌货。
印度再禁 43 款中国手机应用
因中印边境冲突,印度先后在 6 月和 9 月共禁止了 170 多款应用,理由是这些应用收集和共享用户数据,可能对国家构成威胁。本周二,印度周二再次禁用了 43 款手机应用,其中包括阿里巴巴的全球速卖通 (Aliexpress)。这是印度发起的新一轮针对中国的网络制裁。印度给出的理由与前两次相同,声称这些应用程序威胁到”印度的主权和完整”。印度科技部部长将这些行动称为”数字打击”。
封杀麒麟 SoC 设备应用!Google 彻底堵死华为
Google 早已不再对华为提供安卓系统和生态的授权,而华为也正在大力推行自己的 HMS 生态。但从新近的动作看来,Google 并不打算就此放过华为。
近日,一位国外网友发帖称,经他发现,Google 如果检测到采用麒麟处理器的华为设备,就会禁止在上边安装 Google 的应用。该网友表示,多年来,他一直都是手动下载 Google 地图的 APK 安装文件,再手动安装。但是最近,这一招在采用麒麟处理器的华为设备上第一次失灵了,最新版本的 Google 地图拒绝安装,提示“CPU/ 处理器不兼容”,但在同样的设备上,旧版本一切正常。
在测试了华为 P20、P30、P40 等多款机型后,发现都已经无法安装新版的 Google 应用,而换了一台非常老的三星手机,安装却非常顺利。这位网友表示,大概是 Google 对华为做自己的手机系统、应用商店、地图等应用非常不满意。
深度阅读
API 入门指南
fetch API 是基于 promise-based 的 JavaScript API,用于在浏览器中发出异步 HTTP 请求。这是一个简单干净的 API,它使用 Promise 提供强大而灵活的功能集来从服务器获取资源。
https://hackernoon.com/beginners-guide-to-fetch-api-qev31ag
如何使正则表达式在 JavaScript 中可读
正则表达式编写起来很复杂。对它们进行推理甚至更加困难。特别是如果您必须阅读别人的代码。大约一年前,作者写了一篇关于他正在使用的实验的文章。在朋友的建议下,他将这个项目开源了。
https://hackernoon.com/how-to-make-regex-readable-in-javascript-8g153w4t
为什么我们需要对基于类的组件中的事件使用 bind?
您可能想知道为什么需要使用 bind()React 中的事件来调用类方法。
微前端:前端应用的昂贵配方
Microfrontends 是前端世界中的一种新趋势,但是,能够在其他独立应用程序之外组成应用程序的想法并不是什么新鲜事。
https://blog.sergiomartino.com/2020/11/microfrontends-an-expensive-recipe-for-frontend-applications
软件 & 工具 & 库
Electron 11 正式发布:支持苹果 M1 芯片
本月 17 日,Electron 11.0.0 正式发布了。该版本包括对 Chromium 87、V8 8.7 和 Node.js 12.18.3 的升级。还添加了对 Apple silicon 的支持和一些常规改进。
TypeScript 4.1 已正式发布。
使用以下命令通过 npm 获取:
新版本带来了不少新功能:新的检查标志、提升编辑器效率和速度。https://devblogs.microsoft.com/typescript/announcing-typescript-4-1/
Deno 1.5.4 发布
Deno 1.5.4 现已发布,主要更新内容如下:
feat(unstable):添加 deno test --no-run
feat(unstable):支持 --watch flag 的 bundle 和 fmt 子命令
修复:支持"deno run --v8-flags=--help" without script
fix(tsc):允许导入非标准扩展
重构: 改进 Deno.version 类型声明
重构: 将 test 子命令的 --failfast 重命名为 --fail-fast
升级:rusty_v8 0.13.0,v8 8.8.278.2
https://github.com/denoland/deno/releases/tag/v1.5.4
Ant Design 4.8.5 现已发布
Ant Design 4.8.5 现已发布。Ant Design 是一套企业级的 UI 设计语言和 React 实现,使用 TypeScript 构建,提供完整的类型定义文件,自带提炼自企业级中后台产品的交互语言和视觉风格、开箱即用的高质量 React 组件与全链路开发和设计工具体系。
活动推荐:
2023年9月3-5日,「QCon全球软件开发大会·北京站」 将在北京•富力万丽酒店举办。此次大会以「启航·AIGC软件工程变革」为主题,策划了大前端融合提效、大模型应用落地、面向 AI 的存储、AIGC 浪潮下的研发效能提升、LLMOps、异构算力、微服务架构治理、业务安全技术、构建未来软件的编程语言、FinOps 等近30个精彩专题。咨询购票可联系票务经理 18514549229(微信同手机号)。
评论