AI 年度盘点与2025发展趋势展望,50+案例解析亮相AICon 了解详情
写点什么

前端每周清单第 29 期:Web 现状分析与优化策略、Vue 单元测试、Headless Chrome 爬虫

  • 2017-09-05
  • 本文字数:3722 字

    阅读完需:约 12 分钟

前端每周清单专注前端领域内容,以对外文资料的搜集为主,帮助开发者了解一周前端热点;分为新闻热点、开发教程、工程实践、深度阅读、开源项目、巅峰人生等栏目。欢迎关注【前端之巅】微信公众号(ID:frontshow),及时获取前端每周清单。

新闻热点

国内国外,前端最新动态

  • Prettier 1.6.0 发布:本周发布的 Prettier 1.6.0 版本引入了数个期待已久的特性,包括 .prettierrc,.prettierignore 项目配置文件、JSX 显示格式优化、允许 JSON 文件添加自定义注释等;除此之外,该版本还进一步优化了对于 JavaScript、TypeScript、CSS、GraphQL 等格式文件的支持,还提供了更多的命令行特性。
  • Firefox 引入 Headless 模式:类似于 Chrome 的 Headless 模式,现在 Firefox 也引入了 Headless 模式,其允许开发者利用 Firefox 进行更加方便地自动化测试、动态网页抓取等操作;本文也介绍了如何利用 Selenium 控制 Firefox 进行自动化浏览器操作等内容。
  • Webpack 4 开发计划:本文讨论了 Webpack 4 相关的规划与目标,在先前发布的 Webpack 3 版本中并未引入什么断层变化,但是 Webpack 4 中会引入些重大的变革。Webpack 4 的主要目标包括 WASM 支持、新的 CSS 工作流、支持 async script 标签、性能提升、继续优化 ESM、更加完善地支持类型系统等。
  • TypeScript 2.5 版本发布:近日发布的 TypeScript 2.5 版本中引入了许多新的特性,并且能够更好地与 VSCode 协同开发。该版本中提供了函数与方法抽取重构、快速类型修复、JavaScript 文件中的 JSDoc 类型断言支持、可选的 catch 语句等特性,同时还进一步优化了性能与使用体验。

开发教程

步步为营,掌握基础技能

  • 基于 Node.js 的 HTTP2 服务端推送:Node.js 8.4.0 版本中引入了实验性的 HTTP/2 支持,开发者可以通过 --expose-http2 标识位启用 HTTP/2 支持。本文首先介绍了 HTTP/2 服务端推送中重要的知识点,然后从零开始创建简单的 Node.js 应用,来形象阐述如何使用 HTTP/2 以及其特性;更多 HTTP/2 相关资料参考这里
  • 使用官方 Vue.js 测试工具与 Jest 编写组件的单元测试:Vue.js 以其灵活、高性能、易上手的特性正逐步被应用到更多的 Web 项目中,本系列文章则着眼于介绍 Vue.js 应用开发中的单元测试相关内容。本系列文章依次介绍了编写首个简单的组件单元测试用例、测试递归渲染的 Vue.js 组件、测试组件的样式与结构、测试组件的状态,计算属性与方法、测试属性与自定义事件、测试生命周期回调、测试 Vue.js Slots、利用模块别名配置 Jest 等内容;更多 Vue.js 相关资料参考这里
  • 利用 Service Worker 离线运行 Angular 应用:本文主要讨论如何通过 Service Worker 为 Angular 应用添加离线运行特性。本文首先介绍了 Service Worker 的概念与原理,然后介绍了 Google 提供的工具集 Workbox,以及如何使用 Workbox 创建简单的 Service Worker,最后以简单的应用说明了如何创建自定义的 Service Worker、选定缓存内容与缓存策略。更多 Angular 相关资料参考这里
  • 60 分钟内构建 Github 搜索栏:本文是来自 Appbase.io 的工程师分享的,如何快速构建漂亮大方的 Github 应用搜索界面。本文中使用 React 开发前端界面,依次阐述了如何按照组件来切割界面、如何从底向上依次构建各级所需要的组件、如何添加组件事件响应、如何通过 Github API 获取数据并且渲染到界面上等内容;更多 React 相关资料参考这里

工程实践

立足实践,提示实际水平

  • 基于 Puppeteer 与 Chrome Headless 的网页抓取:Puppeteer 是 Google Chrome 团队发布的 Chrome Headless 官方工具。而随着 Chrome Headless 的发布,包括 PhantomJS、Selenium Firefox 等在内很多的项目都宣布停止开发;Chrome Headless 正逐步成为 Web 应用自动化测试的行业领袖。而本文则是一步一步地介绍了如何利用 Chrome Headless、Puppeteer、Node 以及 Mongodb 来抓取 Github 上的相关内容;更多 Chrome Headless 相关资料参考这里
  • V8 中对象属性的快速访问:本文将会介绍 V8 引擎是如何处理 JavaScript 对象中属性的机制;虽然在使用层面上字符型键与数值型键并无差异,但是 V8 处于性能与内存的考虑会使用不同的方式来处理这两种属性。本文则会介绍 V8 提供的快速属性访问机制与动态属性的处理,理解 inline caches 的运行机制等内容;更多 V8 相关资料参考这里
  • 基于 Webpack 的 Vue.js 应用代码分割:早期利用 Webpack 打包前端应用的一大缺陷在于其会产生较大的包体,而后来引入的代码分割特性则能有效地提升首屏加载速度。本文介绍了 Vue.js 应用开发中,如何利用 Webpack 与 Async components 来进行代码的动态加载;更多 Vue.js 相关资料参考这里
  • SparkUI:FreeWheel 的 React 开发实践:SparkUI 是由 FreeWheel 根据自身业务特点开发的一套完整且灵活的前端开发解决方案。该方案基于 React,由 Modula 应用状态管理框架、一系列可重用的前端组件、以及构建 SPA 所需的各类支持库组成。 该方案重视可重用性、灵活性、可测试性以及开发效率,解决了前端社区常见的一些针对商业前端应用开发的痛点,如复杂状态、Side Effect,组件拆分等,更在工程实践、文档化、本身代码质量等方面达到较高标准,为前后端分离架构下的商业前端应用开发提供了坚实的基础。目前 SparkUI 已成功应用在 FreeWheel 的前端项目中。

深度阅读

深度思考,升华开发智慧

  • 为什么我们从 Angular 2 迁移到了 Vue.js(以及为什么不用 React):本文是来自 Rever 的工程师分享的他们在构建新版本 Web 应用时技术选型的考量。作者主要从易用性、代码运行速度、文档、社区活跃度、移动端的支持、开源协议等多个角度对比分析了 Angular.js、Vue.js 与 React 这三个主流框架。其中 Angular.js 的缺陷在于版本更迭过快、代码执行速度略慢、响应式不足等方面;React 的代码运行速度一般,其最近的证书风波也是令人迟疑,而 Vue.js 目前的主要缺陷在于其社区还不如 React 与 Angular 庞大。更多 Vue.js 相关资料参考这里
  • Web 的现状:网页性能提升指南:随着因特网的快速发展,至今已有约 46% 的人们可以通过设备接入到网络中;而其中的大多数又是通过移动设备来浏览网页或其他操作。本文即是对目前 Web 发展现状进行概要性描述,并且讨论了当前状态下网页应该关注的性能提升点。本文依次分析了如何优化 JavaScript、CSS 等资源文件、选择合适的图片、优化网页字体、优化 JavaScript 执行、如何正确地追踪性能指标等内容;更多 Web 性能优化相关资料参考这里
  • Webkit 中 JavaScript 并发编程提案:随着 SharedArrayBuffer 被引入,JavaScript 也正逐步转向提供并发支持;本文即是 Webkit 开发团队分享的它们对于并发 JavaScript 编程的考虑与设计。本文依次讨论了 Thread 相关的 API、JavaScript 内存模型、如何与 DOM 进行交互、如何进行并发控制以及 WebKit 的实现方案等内容;
  • 澄清对 AMP 的十个误解:AMP 是由 Google 出品的,采用了白名单强约定策略的开源 Web 组件格式和类库;因为 AMP 本身处于性能的考虑限制了网页本身的开发自由,也导致了开发者对 AMP 颇有微词。本文则是对于 AMP 的常见误解进行阐述,包括 AMP 的定位与运行环境、AMP 的适用目标、AMP 与现有网站的集成方式、AMP 与 PWA 之间的关系等内容。

开源项目

乐于分享,共推前端发展

  • asm-dom : asm-dom 是轻量级的基于 WebAssembly 的 Virtual DOM 框架,其允许开发者使用 C++ 来构建 Web 单页应用。开发者可以仅使用 C++ 来编写 Web 应用,然后通过 Emscripten 来将其转化为 WebAssembly;其能允许开发者直接使用现有的 C++ 标准库代码,从而保证代码复用与性能提升。
  • Vivify :Vivify 是轻量级的 CSS 动画库,提供了数十种常见的 CSS 动画实现,包括 ball、blink、driveInBottom、fadeIn、flip、popIn 等;开发者只需要将样式文件引入页面中即可使用。
  • React Map GL :React Map GL 是 Uber 出品的基于 React 与 Mapbox GL 的地图库,其提供了 Browserify、Webpack 2、create-react-app 多种集成尝方式;官方也给出了与 Redux 的便捷集成方式。
  • Push : Push 是 BrowserStack 出品的,快速实现基于 JavaScript 的桌面消息推送工具;Push 能够自动利用 Chrome、Safari、Firefox、IE9+ 这些现代浏览器提供的底层接口,为开发者提供跨平台的统一调用方式。
  • r2 :r2 是 request 的作者基于多年的现代开发实践总结出的轻量级、高可用 HTTP 客户端;r2 基于浏览器端的 fetch 实现,使用了 node-fetch 提供了 Node.js 环境下的支持。

巅峰人生

  • 与 Node.js 创立者 Ryan Dahl 的对话:Ryan Dahl 是 Google Brain 团队的软件工程师,也是 Node.js 项目的创立者;而他目前则就职于深度学习项目,着手图片转化等相关的方向。本文则是与 Ryan Dahl 的一次访谈记录,谈论了 Ryan Dahl 的技术生涯发展、工作选择、创立 Node.js 的考量等内容。

前端之巅

「前端之巅」是 InfoQ 旗下关注前端技术的垂直社群,加入前端之巅学习群请关注「前端之巅」公众号后回复“加群”。投稿请发邮件到 editors@cn.infoq.com,注明“前端之巅投稿”。


感谢徐川对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2017-09-05 19:002595
用户头像

发布了 60 篇内容, 共 17.9 次阅读, 收获喜欢 9 次。

关注

评论

发布
暂无评论
发现更多内容

问题来了:4GB物理内存的机器上申请8G内存能成功吗?

Java全栈架构师

Java Linux 程序员 面试 程序人生

LeaRun.Java表单快速开发工具

力软低代码开发平台

【网络安全】VPN是什么?VPN与堡垒机有啥区别?

行云管家

网络安全 堡垒机 vpn

Python小白何时能做自动化

伤心的辣条

Python 软件测试 自动化测试 接口测试 测试开发

全国超10亿用户!AntDB数据库的电信核心交易替换之路

亚信AntDB数据库

数据库 通信 电信 运营商 数据库应用开发

蓝凌叮当刘向华:如何用一款SaaS俘获年轻人的心?

ToB行业头条

本周二晚19:00战码先锋第5期直播丨深入理解OpenHarmony系统启动,轻松踏上设备软件开发之旅

OpenHarmony开发者

OpenHarmony

Mybatis省略@Param注解原理

mybatis 6月月更 @Param注解

本地开发测试,局域网中使用IP地址访问项目网站

迷彩

网站架构 学习记录 网站开发 6月月更

腾讯云小微技术登顶权威榜单XTREME基准,跨语言技术迁移开发助力企业出海

科技热闻

国际权威报告:SaaS+AI大势所趋,腾讯云领跑国内科技公司

科技热闻

melody SGS旋律麦克风链游开发模式分析

开发微hkkf5566

CloudTTY:下一代云原生开源 Cloud Shell

Daocloud 道客

Kubernetes 云原生 开源项目 网页命令行

新一代政务云的“前移”与“致远”

云计算

2022中国信通院安全运营发展论坛成功召开

中国IDC圈

安全

从功能测试进阶自动化测试,熬夜7天整理出这一份3000字超全学习指南【附网盘资源】

伤心的辣条

Python 程序员 软件测试 IT 自动化测试

全球云计算市场持续发力,但云身份管理能力认可度不足3成

行云管家

云计算 云服务 企业上云 混合云 多云

如何实现十亿级离线 CSV 导入 Nebula Graph

NebulaGraph

知识图谱 数据导入 Nebula Graph CSV 文件导入

想要了解数字机器人如何赋能政企领域,一定不要错过这个论坛

王吉伟频道

RPA 机器人流程自动化 机器人开发 华为开发者大会2022 华为WeAutomate

面试时必问的五大问题

伤心的辣条

Python 软件测试 自动化测试 测试开发 软件测试面试

国家先进计算产业创新(宜昌)中心正式落地 由中科曙光、升哲科技联合运营

SENSORO

人工智能 物联网 新基建 智慧城市

想发自己的NFT,你要先搞清楚这6个问题

华为云开发者联盟

区块链 数据资产 NFT

从无到有,政务系统的全面可观测模板

博睿数据

智能运维 博睿数据 政务系统 全面检测

本周三晚19:00Hello HarmonyOS应用篇第7课—分布式应用开发

HarmonyOS开发者

HarmonyOS

应用实践 | Apache Doris 在网易互娱的应用实践

SelectDB

MySQL 数据库 最佳实践 apache doris 数据优化

游泳馆应用软件开发:在线一站式服务,优化用户整体体验

开源直播系统源码

软件开发 APP开发 直播系统

改变世界的开发者丨黑客松冠军,为听障儿童推开一扇“有声的窗”

华为云开发者联盟

云计算 华为云 GaussDB 听觉 听障儿童

数据关联最佳实践

观测云

可观测性 可观测

在线帮助中心对企业的作用及解决方案

小炮

ShardingSphere 异构迁移最佳实践:将3.5亿量级的顾客系统 RTO 减少60倍

SphereEx

Java php MySQL 数据库 ​Apache ShardingSphere

Git 不要只会 pull 和 push,学学这 5 条提高效率的命令

CRMEB

前端每周清单第 29 期:Web 现状分析与优化策略、Vue 单元测试、Headless Chrome 爬虫_语言 & 开发_王下邀月熊_InfoQ精选文章