点击上方 前端Q,关注公众号
回复加群,加入前端Q技术交流群
近日,前端开发者 Tero Piirajinen 推出了一个名为 Nue.js 的极简化前端开发工具,并迅速引发社区讨论。Piirajinen 在 Hacker News 上表示,它是 React、Vue、Next.js、Vite、Svelte 和 Astro 的替代品。
据悉,Nue 源自德语单词 neue,与英语中的“new”同义。它能帮助具备 HTML、CSS 和 知识的开发者构建服务器端组件与响应式界面。具体来说,Nue 有三大优势:改善开发者体验;加快项目进度;加快页面加载速度。而其最大的亮点在于,它能将用户界面代码量控制在其他同类方案的十分之一。
Nue 作者 是一位来自赫尔辛基的前端开发者,并在开源项目、技术产品和初创企业中工作了 25 年以上,比较知名的成果包括 Riot.js、 和 等。目前, 正在独力开发 Nue.js 项目,并积极寻求更多贡献者的加入。
在 News 上的帖子中提到,过去 12 个月以来,他一直从事项目开发工作,最近还转为全职。他的开发目标有两个:
Nue JS——一个用于构建用户界面的小型(压缩后仅为 2.3 kb) 库。它类似于 React 和 Vue,但去掉了 hooks、、props、、、、 等各种抽象元素。只要开发者具备 HTML、CSS 和 方面的基础知识,就完全可以轻松上手。它支持服务器端渲染和客户端响应式组件,设计灵感来自 Vue 2.0 和 Riot.js( 本人也是 Riot 的原作者)。
Nue 工具——一套完整的前端开发工具集。在完成之后,Nue 将能够取代 Vite、Next.js 和 Astro 等系统,这也是本项目的最终发展目标。
计划在 2024 年 3 月之前完成所有工具的准备工作,但具体时间取决于问题数量、开源维护工作量,以及他自己的判断水平。目前,Nue 已在 上开源,并遵循 MIT 许可证。
链接:
1 为什么创建 Nue?
表示,他创建 Nue 的主要原因是他对于当前 Web 开发态势并不满意,主要问题包括相关工具太复杂、代码难以理解、编译时间长、网站过于臃肿等等。
此前, 在 、Muut 和 担任首席产品官(CPO)时,就有一些不太愉快的前端开发经历。虽然项目最初进展顺利,但很快就变得难以维护。经过几个月的开发,工作节奏开始明显放缓,原本乐观的未来计划也越来越难以落地。
认为,不只是他自己有这种感觉,整个前端开发行业都面临危机。 提到,他读过不少相关文章,开发者们纷纷表示前端令他们身心俱疲。因此, 想要做点什么,改变这令人恼火的现实。
计划以极简化方式从零开始构建一切,并用到了不少“旧有”创新成果,例如渐进式增强、关注点分离和语义网页设计。而 Nue 是 改变现状的一次雄心勃勃的尝试,希望能为 JS 和 UX 开发者们提供极简化工具。它强调恢复 Web 标准模型的荣光,并引入现代创新的力量。Nue 想要让 Web 开发再次变得有趣。
表示,Nue 的灵感主要来自 开发的 Bun。这是一款新的 JS 运行时、捆绑器、测试运行器外加 NPM 兼容型包管理器。 认为,Bun 希望让 变得更快,而 Nue 希望让前端开发变得更快。Nue+Bun 将成为面向前端开发者的完美组合。值得一提的是, 和 一样,也是一个单兵作战的开发者。
Nue 的其他灵感来源还包括:
的推文:“纵观如今的 Web,我发现开发实践仍然没能遵循最基本的导航和可用性规则。尽管硬件发展一刻不停,但 Web 呈现速度仍然很慢。我只能认为,现代前端开发已经走进了死胡同。”
乔布斯的名言:“一切应该以客户体验为起点,再据此倒推技术实现。”
Rams 的名言:“少,即是多。”
基于以上几点, 给 Nue 项目定下了三条指导原则:
关注点分离:让人们各自专注自己的专业领域,由此加快交付速度;内容创作者专注于内容,UX 开发者专注于交互设计,JS 开发者负责前端中的后端部分。
“只用最普通的 Web 元素”:Nue 将努力发掘标准 HTML、CSS 和 当中蕴藏的力量。
极简主义:小型代码库更易于维护和扩展,发生错误的几率也会更低。
2 代码量减少 10 倍,Nue 主张极简主义
据了解,Nue 的最大优势就是帮助开发者以更少的代码达成相同的效果。在一个项目中,同样的功能实现之间存在 2 到 10 倍的代码量差异并不罕见。以用 Nue 编写的自定义列表框组件为例:React 版本需要使用 2500 行 JS 代码,Nue 版本则能够在保持 50% 到 80% 功能的前提下,把代码量控制在十分之一。
“这就是 HTML”
Nue 使用的是基于 HTML 的模板语法:
{ title }
{ desc }
类似于 React 宣称其“就是 ”,Nue 也可被认为“就是 HTML”。而这样的特性,对于专注于交互设计、可访问性和用户体验的 UX 开发者来说堪称完美。
开发者可以点击此处()查看 Nue 编码风格与 React、Vue、、 和 Astro 之间的异同。
为扩展而生
据介绍,Nue 之所以能够为前端开发带来新的可扩展水平,主要归功于以下三大因素:
关注点分离,易于阅读的代码比“一团乱麻”的代码更易于扩展。
极简主义,100 行代码肯定比 1000 行代码更易于扩展。
人员分离。保证 UX 开发者只须关注前端,JS/TS 开发者只须关注前端的后端,这样团队技能就会达到最佳平衡。
UX 开发者与 开发者能够并行工作、互不干扰,最佳结果也自然会由此产生。
对样式解耦
Nue 并不主张使用域 CSS、 或者其他紧密耦合的 CSS-in-JS 框架。相反,它认为最好将样式跟布局和结构区分开来,主要是因为:
四种组件类型
Nue 拥有丰富的组件模型,允许开发者使用不同类型的组件构建起各类应用:
UI 库文件
Nue 允许大家在单个文件上定义多个组件,这无疑是种能把相关组件整理起来并简化依赖项管理的绝佳方法。
<script>
import { someMethod } from './util.js'
</script>
...