Better

Ethan的博客,欢迎访问交流

2019 年前端发展

感觉今年时间过得可真快呀,19 年就要进入尾声了,回顾下今年前端和自己的发展吧

时而清晰、时而迷茫

标题就是对我过去一年的总结了,加入新公司,大框架方面,抛弃了 Vue,转而使用 Angular,目前正在将项目迁移至 React 的过程中。结果就是任何一个框架都不会了。所以我迷茫了。

但也是有成长的,对 Three.js 3D 渲染方面有了一定的经验,也算是会用了。但也只是会用而已。

还有就是心态变好了,面对复杂和混乱的代码,没那么容易奔溃了,承受能力变强了。

更加爱思考了,思考项目结构该如何更好分层,面对复杂需求该如何拆解,学习如何使用 OOP 及相关优秀设计模式、设计原则来避免写出超级大的类或组件。所以有时候也觉得比较清晰。这方面的积累一定是值得的。

……

前端

框架方面没有太大的变化:React/Vue/Angular

WebAssembly 成为了继 HTML、CSS 和 JavaScript 之后的第四大Web语言

TypeScript 的使用激增:许多开发人员为之倾倒

React 继续保持领先,开发人员为钩子倾倒

React 在 v16.8 添加了大量钩子之后,将工作重点转移到通过提供更多工具来改善开发人员的工作。React 团队发布了哪些功能和计划:

  • 全新版本的 React DevTools
  • 全新的 React 性能分析工具
  • 创建了 React App v3
  • 测试工具的更新
  • Suspense
  • 并发模式(即将推出)
  • Facebook 使用的 CSS-in-JS(即将推出)
  • 渐进/选择性页面 hydration(即将进行)
  • React 核心层面支持可访问性(即将发布)

可访问性和国际化变得越来越重要

Flutter 突飞猛进地发展,作为构建跨平台移动应用的另一个绝佳选择向 React Native 发起了挑战

随着版本 3 的发布 Svelte 获得了关注,但在采用方面依然落后

前端的工具越来越优秀

  • Create React App、Vue CLI、Angular CLI
  • 用于静态网站的 Gatsby
  • 用于 React Native 移动应用的 Expo
  • 用于 SSR 应用程序的 Next/Nuxt
  • 免却为 GraphQL 编写服务器的 Hasura
  • 使用 GraphQL 代码生成器自动生成 TypeScript 类型
  • Webpack 不断得到简化

GraphQL 深受开发人员的喜爱,并在科技公司中得到进一步的采用。GraphQL 有望解决传统的基于 REST 的应用程序面临的许多问题。

  • GraphQL 应用程序是数据驱动的(不是端点驱动),因此客户端可以声明所需的确切数据,从服务器接收相应的 JSON 响应。
  • GraphQL API 提供的文档记录了所有的数据及其类型,帮助开发人员更全面地了解 API。
  • 由于 GraphQL API 提供了完全类型化的架构,因此它也可以与 TypeScript 应用程序很好地集成。GraphQL 可以通过 GraphQL Code Generator 等工具读取客户端代码中的查询,并将其与架构进行匹配,以提供在整个应用程序中流动的 TypeScript 类型。

CSS-in-JS 的发展势不可挡

  • 通过 import/export ,利用常规的 JavaScript 语法共享样式和依赖项。
  • CSS-in-JS 组件可以将 props 插入到样式字符串中,简化了动态样式
  • styled-components 和 emotion 是 CSS-in-JS 的两个主要库,而且2019年 emotion 的下载超过了 styled-components。

Webpack 5 已进入测试阶段且即将发布

  • 通过持久缓存提高构建性能;
  • 通过更好的算法和默认值来改善长期缓存;
  • 清理内部模式,同时不会引发任何重大变动。

CSS 新特性

  • CSS Grid
  • CSS 定义变量
  • CSS Houdini

打包工具

  • Webpack 主流
  • 下一批常使用的打包工具是 Parcel 和 Rollup打包工具

JavaScript lint

  • eslint 绝对的王者
  • 有部分原因可能要感谢 Typescript 团队,这可能是因为他们在今年 2 月份宣布放弃 TSLint,和集中能力去改善 ESLint 在 TS 项目中的支持。

JavaScript 测试工具

  • Jest 仍排在首位占了44.86%
  • Mocha (26.12%),Jasmine (19.47%) 和 Enzyme (18.64%) 则是下一批最常使用的测试工具。

性能测试

  • Lighthouse 是当前最受欢迎的性能测试工具,占了52.11%。
  • 24.29% 开发者说会使用 WebPageTest
  • 23.13% 的人会在项目中使用 Service Workers 技术提高

参考



留言