beta

阅读:十二月 10 日

今天读了两篇关于 JavaScript 的文章。

All You Need To Know About CSS-in-JS

https://hackernoon.com/all-you-need-to-know-about-css-in-js-984a72d48ebc

Web 开发已经从传统的面向页面转向了面向组件,而 CSS 还没有跟上这一变化。CSS-in-JS 是一种全新的 CSS 开发模式,在 JavaScript 中直接为每个组件定义样式,并编译为 CSS 作为 <style> 标签插入到 DOM 中。作者提出了 CSS-in-JS 的诸多优点,例如每个组件拥有自己的 CSS 命名空间、可以在 JavaScript 和 CSS 之间共享代码,甚至还为 CSS 带来了单元测试。

目前最受欢迎的 CSS-in-JS 库有 Styled ComponentsJSS-ReactglamorousRadiumAphroditeStylotron 等等。前端社区真是活跃啊。作者为这几个库分别提供了一段简单的 demo,可供参考。


A Look Back at the State of JavaScript in 2017

https://medium.freecodecamp.org/a-look-back-at-the-state-of-javascript-in-2017-a5b7f562e977

作为一个只会用 jQuery 的 ECMAScript 5 程序员,现在的 JavaScript 对于我而言是一门完全陌生的语言。作者采访了几位 JavaScript 开发者,分别从测试、构建工具、状态管理和全栈开发框架等方面聊了聊 2017 年的 JavaScript 发展到了一个什么状态。

测试:Mocha 仍然是最受欢迎的测试框架。Jest 的 NPM 下载量超过了 Jasmine,越来越多的人开始用 snapshot testing 代替单元测试来更好地对 UI 进行测试。新的端到端测试平台 Cypress 正在逐渐发展起来,号称可以测试「anything that runs in a browser」。

构建工具:Webpack 依然是主流。Yarn 在九月发布了正式版,有了与 NPM 一战高下的实力。

状态管理:Redux 依然没有有力的竞争者,但是并不是所有应用都需要用 Redux。

全栈开发框架:React 作为前端,Express 作为后端,Jest 作为前后端通用的测试方案。

有趣的是,这几位 JavaScript 开发者的言谈似乎有一些小矛盾。测试方面的 Michael Shilman 推荐使用 Webpack,而状态管理方面的 Tom Coleman 觉得 Webpack 在「configuration over convention」的道路上走得太远了,并希望 Meteor 可以重回王座。Raphaël Benitte 觉得 JavaScript 社区的工具太多了,希望 NPM 或 Yarn 能够提供文档、自动完成这类基础的功能,否则他还会坚持用 GNU Make。