作者:Michael Rambeau
编译:郭露
原文链接:https://risingstars.js.org/2021/en#conclusion
在过去一年中,JavaScript生态圈的技术框架大放异彩,根据GitHub中增加的星星数量排名,JavaScript领域最受欢迎的项目是zx、Vite和Next.js。开发者越来越看重速度的提升,为构建更好的网站和应用,元框架开始走进大家的视野。许多社区成员都开始从事开发工作,为用户带来更好的体验。今年又将出现哪些表现出色的项目呢?让我们一起来看看吧!
最受欢迎的项目:zx、Vite和Next.js
今年最受欢迎的项目是谷歌的zx,可在JavaScript或TypeScript中编写简单的命令行脚本。
zx支持在代码中嵌入任何bash表达式(ls、cat、git等等),并借助JavaScript模板字面量获得结果。
zx涵盖了多个软件包提供的功能:
- node-fetch:使用与浏览器中相同的API发出HTTP请求
- fs-extra:运行文件系统
- Globby:匹配给定用户友好模式的文件名
![](https://i-blog.csdnimg.cn/blog_migrate/37b416daf17a93a9e62cb9d44537e8fb.png)
排在第二位的是Vite。Vite是一个构建工具,可通过esbuild编译器提供出色的性能。Vite最初借助 Vue.js 社区提供支持,但如今Vite已兼容主要UI框架:React、Svelte和Lit。
Next.js排名第三,在React领域依旧保持领先的“元框架”地位。
特色工具
尽管Astro未进入前10,但它是今年最引人注目的工具之一。Astro可构建加载速度更快的网站,这些网站的JavaScript数据更少。
这一概念与静态站点生成 (SSG) 非常相似,但主要区别在于Astro支持在页面中使用动态交互内容。
以下是能够在客户端渲染动态组件的情况:
- 页面加载时
- 页面闲置时,前提是它是一个低优先级的组件
- 当使用浏览器Intersection Observer API时组件可见时
Astro最大的优势在于其页面可以使用HTML和任何框架编写的组件组合进行构建:React、Vue.js或Svelte。
![](https://i-blog.csdnimg.cn/blog_migrate/d519ac15d4498ccd30d3b88780eadd5f.png)
前端框架
自JavaScript明星项目推出以来,React首次成为最受欢迎的UI框架,其次是Vue.js。
其中最引人注意的是Svelt的崛起,它超过了Angular,位列第三。如今越来越多的工具以及组件将Svelte纳入选择框架中(其中包括Vite)。而Svelt的作者Rich Harris于去年加入Next.js后的Vercel团队。
与Next.js类似的是,Svelte拥有自己的元框架,即SvelteKit,可构建高性能应用程序。
排名第五的是Solid,是React的替代工具之一。其组件采用JSX编写,但与React不同的是,Solid并不依赖虚拟DOM。
![](https://i-blog.csdnimg.cn/blog_migrate/7f51d533589b33786082e72fb695742e.png)
Node.js框架
一般来说,各大UI框架都拥有自己的“元框架”来构建可扩展的应用程序,并提供诸如路由、服务器端渲染(SSR)、生成静态页面、优化构建等功能。
- React拥有最优秀的元框架
- Next.js Vue.js的元框架为Nuxt,同时Vue.js分为Vue.js v2和v3两个版本
- Svelte的元框架为SvelteKit
排在第二位的Nest为服务器端Node.js框架的先驱,不与任何UI库相关联。
位列第三的Strapi则是“无头CMS”的先驱,Strapi拥有强大的功能,用户可进行数据管理,其最新版本提供了建立在React组件库之上的设计系统。
Remix由React Router的作者创建,为构建React应用的全栈框架,是Node.js框架中的新秀,同时也是今年最惊艳的工具之一。
自推出以来,Remix就受到大量支持。该框架旨在“提供网络基础,提升用户体验”,其API以网络标准为准(HTTP响应、表单提交等)。
![](https://i-blog.csdnimg.cn/blog_migrate/0f584c339da4422ef14769ac3d2d4016.png)
构建工具
2021年,构建工具已有的趋势越发明显。
越来越多人开始采用原生ES模块。Vite得到广泛采用(其发展速度比snowpack更快),因而催生出新的工具生态系统(例如基于ES的现代测试框架Vitest)。Node.js生态圈中也开始采用ES模块,但难度要更大。TypeScript甚至推迟了对Node.js中ES模块的支持。
出于性能的考虑,越来越多的前端工具采用其他语言进行开发。
Lee Robinson认为,Rust是JavaScript基础设施的未来。Rust有着良好的性能,同时与JavaScript的互操作性较强。NAPI-RS可让JavaScript和Rust进行交互。
而Next.js则非常看好swc的发展,作为一个可扩展的Rust编译器,swc可将Babel插件移植到Rust上。
Rust是最受欢迎的的非JS语言,但它并不是唯一的语言。Bun采用的是Zig,而Turborepo和esbuild均采用的是Go。
在monorepo中广泛采用的仍然是Lerna。而单引擎工具Nx能够大幅减少构建时间,其覆盖范围一直在快速扩大。其竞争者Turborepo在被Vercel收购后抢占了巨大的市场。
![](https://i-blog.csdnimg.cn/blog_migrate/9691776096de70b23d00f2314ec2ecfb.png)
Vue生态圈
在Vue 3正式发布的一年中,Vue生态系统正以前所未有的速度迅速发展。
Vue生态系统提供的新的语法对于创作组件更加友好。同时新的VS Code插件Volar可为Vue提供TypeScript支持;基于Composition API的状态管理器Pinia成为Vuex的替代品之一。
随着Vite成为新的Vue的默认工具,Nuxt 3、Quasar和VitePress等元框架均选择Vite作为默认引擎。Vite大大地提高了开发者体验,并为开发创新提供了新的支撑。
同时开发者在努力将Vue 2的DX迁移到Vue 3上。对于Vue开发者来说,2021年是伟大的一年,他们的应用在DX和性能方面都得到了极大改善。
![](https://i-blog.csdnimg.cn/blog_migrate/02dfa8baf7c2561c0662a7f3f4c7079a.png)
React生态圈
React 18即将发布,现在已经可以使用RC版本体验新功能,例如自动批处理以减少渲染或SSR对Suspense的支持。
React 18增加了人们期待已久的并发渲染器并支持Suspense,但没有任何重大更新,其初始版本将提供部分并发功能,例如startTransition。React去年在各浏览器和服务器上迅速发展,期待它能够走得越来越远。
![](https://i-blog.csdnimg.cn/blog_migrate/60b992ca248650dd25ee968f9e268fd3.png)
JavaScript中的CSS
测试框架
![](https://i-blog.csdnimg.cn/blog_migrate/025b66576a96cc1e5629ca38b60e7201.png)
移动开发
桌面开发
静态站点
状态管理
GraphQL
结论
为构建更好的网站和应用程序,元框架时代已悄然来临。Next.js、Nuxt、SvelteKit以及Remix等框架都为开发者了更多的可能。
许多JavaScript社区中的著名成员都加入了科技公司并从事开发工作:
- Kent C. Dodds加入了Remix团队,他认为Remix能够为用户带来绝佳的开发体验。
- Svelte的作者Rich Harris、React核心团队的Sebastian Markbåge以及Jared Palmer则加入了Vercel,并采用开源解决方案来管理monorepos(Turborepo)。
由于开发者越来越注重速度的提升,因此Rust和Go等编程语言的应用范围越来越广,JavaScript前途未卜。
Deno开始采用swc工具,过去一年中其表现依旧非常强势,并且仍在不断推出更新。同时Deno还推出了Deno Deploy。
2022年能否成为JavaScript全栈应用的黄金时代呢?让我们一起期待一下吧!