highlight:a11y-darktheme:cyanosis大家好,我是前端夜班,现在是2022年1月,马上就要过年了,在这里祝大家开心提前过年,过去的2019年,javascript和css和往年一样,技术框架和技术栈依旧百花齐放。作为一名前端开发人员,我也曾经历过“新的没学,被淘汰、被取代”的情况。但是,技术仍然需要学习。还有工作要做,不要给自己压力,无怨无悔的努力就好。CSS领域的2021年总结也在前不久发布了,但是Javascript迟到了,但迟到不代表它不会来。今天让我们休息一下,摆脱JavaScript学习疲劳。一起来看看这个JavaScript新星第6期,JavaScript领域2021年度总结。下图比较了过去12个月GitHub上顶级项目添加的?数量。对来自BestofJS的项目进行了分析,以编制这份精选的与Web平台相关的最佳项目列表(均显示前十名)。最受欢迎的项目今年最受欢迎的项目是zx,这是来自Google的全新命令行工具,可让您使用JavaScript或TypeScript编写简单的命令行脚本。基本上,它允许您在代码中嵌入任何bash表达式(ls、cat、git...任何东西!),并使用JavaScript模板文字等待结果。它包括几个流行包提供的实用程序:node-fetch使用与浏览器中的fetch相同的API来发出HTTP请求fs-extra处理文件系统操作与给定的用户友好模式匹配的大文件名script.mjs文件#!/usr/bin/envzxawait$`catpackage.json|grepname`letbranch=await$`gitbranch--show-current`await$`depdeploy--branch=${branch}`awaitPromise.all([$`sleep1;echo1`,$`sleep2;echo2`,$`sleep3;echo3`,])letname='foobar'await$`mkdir/tmp/${name}`runzx./script.mjs哇,命令行工具排名第一,不过这样的命令行工具实在是让人印象深刻,所以赶紧按了一个star。Vite排在第二位,我觉得名副其实。用过的人,我觉得第一印象就是速度快,使用体验和使用手册都符合Vue文档一贯的风格。Next.js和React也分列第三和第四。Next.js为您提供生产环境所需的所有功能和最佳的开发体验:包括静态和服务端融合渲染、支持TypeScript、智能打包、路由预取等功能,无需任何配置。据说引入swc后,速度比babel还要快。第五名,Tauri是使用Web技术构建桌面应用程序的解决方案。与Electron不同的是,它是用Rust编写的,并不是每个应用程序都随附Node.js运行时。1.0版于5月发布了Beta版。Vue排在第十位,而Angular并没有出现在前十名中。我对TailwindCSS和Astro更感兴趣。之前写过一篇关于TailwindCSS的介绍,《一次就能看懂的Tailwind CSS介绍》,TailwindCSS是一个使用UtilizeClass(以下简称UtilizeClass)预构建css的CSS框架。我很好奇它未来的发展。这里排名第六,说明热度相当不错。Astro并没有出现在上面的排行榜中,但Astro是今年最受瞩目的项目之一。Astro是一种用于构建加载速度更快的网站的工具,因为它们发出的JavaScript更少。这个概念接近静态网站生成(SSG),但主要区别在于Astro支持在页面中使用动态交互内容。可以应用不同的策略在客户端呈现动态组件:如果页面是低优先级组件,则在页面加载时,然后在页面空闲时(考虑跟踪)。关于组件何时可见的最佳部分之一使用浏览器IntersectionObserverAPI是Astro页面可以使用HTML和使用任何框架编写的组件的组合来构建:React、Vue.js或Svelte……许多知名项目如swc、Deno、Remix、esbuild、`Svelte`……这里的前端框架可能对Svelte和Solid比较陌生。Svelte之前也转发过《Svelte 原理浅析与评测》的一篇文章。Svelte是一个用于构建Web应用程序的工具,类似于React和Vue等JavaScript框架。有一个关键区别:Svelte在构建/编译阶段将您的应用程序转变为理想的JavaScript应用程序,而不是在运行阶段解释应用程序的代码。这里最大的变化是Svelte的崛起,它排在Angular之前排名第三。排在第五位的是Solid,它是React的替代品之一。它的组件是用JSX编写的,但与React不同的是,Solid不依赖于虚拟DOM。node.js框架主要的UI框架有自己的“元框架”来构建现代和可扩展的应用程序,提供路由、服务器端渲染、提前静态生成页面、生产优化构建等功能......Next.js,类别获胜者,可以被认为是该领域的先驱Vue.js有Nuxt,现在分为Vue.jsv2和v3版本Svelte有SvelteKitRemix,我是在2021年底才知道的是一个全栈Web框架,可让您专注于用户界面,并通过Web基础提供快速、流畅和有弹性的用户体验。除了这些元框架之外,Nest还是不依赖于任何UI库的更传统的服务器端Node.js框架的领导者。最后,Strapi是“无头CMS”的领导者。构建工具越来越多地采用原生ES模块。Vite的广泛采用(它的增长速度比积雪快)催生了一个新的工具生态系统(例如Vitest,一个基于ES的现代测试框架)。ES模块也开始被Node.js生态采用,但难度更大。TypeScript甚至延迟了对Node.js中ES模块的支持。出于性能原因,越来越多的前端工具是用其他语言开发的。LeeRobinson认为Rust是JavaScript基础设施的未来。Rust具有良好的性能和与JavaScript的强大互操作性。NAPI-RS使JavaScript和Rust能够交互。Next.js非常看好swc的发展。作为一个可扩展的Rust编译器,swc可以将Babel插件移植到Rust。Rust是最流行的非JS语言,但它不是唯一的。Bun使用Zig,而Turborepo和esbuild都使用Go。Lerna在monorepo(单仓设计)中的应用还是比较广泛的,这种单仓设计之前也介绍过(《基于 lerna 实现 Monorepo 项目管理》)。Vue生态系统Vue3正式发布一年后,我们看到生态系统正在快速发展并带来许多伟大的创新。Vue3核心中的
