nuejs - 使用减少 10 倍的代码构建用户界面。React、Vue 和 Svelte 的替代方案

Created at: 2023-09-13 08:18:50
Language: JavaScript
License: MIT
努伊标志

背景故事生态系统文档入门

什么是Nue JS?

Nue JS是一个非常小(2.3kb minzipped)的JavaScript库,用于构建Web界面。它是即将到来的Nue生态系统的核心。它就像 Vue.js、React.jsSvelte,但没有钩子、效果、道具、门户、观察者、提供、注入、暂停或其他不寻常的抽象。学习HTML,CSS和JavaScript的基础知识,你就可以开始了。

使用更少的代码构建用户界面

Nue 的最大好处是你需要更少的代码来做同样的事情:

生成基本列表框 UI 组件所需的代码量

看到你需要编写的代码量相差 2-10 倍并不罕见。例如,用 Nue 编写的列表框组件比 Headless UI 项目中的 React 版本小十倍左右。

“这只是 HTML”

Nue 使用基于 HTML 的模板语法:

<div @name="media-object" class="{ type }">
  <img src="{ img }">
  <aside>
    <h3>{ title }</h3>
    <p :if="desc">{ desc }</p>
    <slot/>
  </aside>
</div>

虽然React和JSX声称“只是JavaScript”,但Nue可以被认为是“只是HTML”。Nue 非常适合专注于交互设计、可访问性和用户体验的 UX 开发人员

为扩展而构建

Nue 扩展性非常好的三个原因:

  1. 关注点分离,易于理解的代码比“意大利面条代码”更容易扩展

  2. 极简主义,一百行代码比一千行代码更容易扩展

  3. 人才分离,当UX开发人员专注于前端,而JS/TS开发人员专注于前端的后端时你的团队技能将得到最佳调整:

当UX开发人员和JavaScript开发人员在没有重叠的情况下一起工作时,可以获得最佳结果

解耦样式

Nue 不提倡使用 Scoped CSS、style attribute、Tailwind 或其他 CSS-in-JS 体操:

  1. 更多可重用代码:当样式未硬编码到组件时,同一组件的外观可能会有所不同,具体取决于页面或上下文。

  2. 没有意大利面条代码:纯HTML或纯CSS比混合意大利面条代码更容易阅读

  3. 更快的页面加载:通过解耦样式,可以更轻松地从辅助 CSS 中提取主 CSS,并将 HTML 页面保持在关键的 14kb 限制以下。

了解有关样式的详细信息

React 性和同构性

Nue 具有丰富的组件模型,它允许你使用不同类型的组件创建各种应用程序:

  1. 服务器组件在服务器上呈现。它们可以帮助你构建以内容为中心的网站,这些网站在没有 JavaScript 的情况下加载速度更快,并且可以被搜索引擎抓取。

  2. React 式组件在客户端上呈现。它们可帮助你构建动态孤岛或单页应用程序。

  3. 混合组件部分呈现在服务器端,部分呈现在客户端。这些组件可帮助你构建 React 式、SEO 友好的组件,例如视频标签或图像库。

  4. 通用组件在服务器端和客户端的使用方式相同。

用户界面库文件

Nue 允许你在单个文件上定义多个组件。这是将相关组件组合在一起并简化依赖项管理的好方法。

<!-- shared variables and methods -->
<script>
  import { someMethod } from './util.js'
</script>

<!-- first component -->
<article @name="todo">
  ...
</article>

<!-- second component -->
<div @name="todo-item">
  ...
</div>

<!-- third component -->
<time @name="cute-date">
  ...
</time>

使用库文件,你的文件系统层次结构看起来更清晰,并且你需要更少的样板代码将连接的部分联系在一起。它们有助于为其他人打包库。

更简单的工具

Nue JS带有一个简单的服务器端渲染函数和一个为浏览器生成组件的函数。你不需要像 Webpack 或 Vite 这样的复杂捆绑器来控制你的开发环境。只需将 Nue 导入你的项目,你就可以开始了。

render
compile

当然,如果你的应用程序变得更加复杂,具有大量依赖项,则可以在业务模型上使用捆绑器。包子esbuild是很棒的,高性能的选择。

使用案例

Nue JS 是一个多功能工具,支持服务器端和客户端呈现,并帮助你构建以内容为中心的网站和 React 式单页应用程序。

  1. 用户界面库开发为 React 式前端或服务器生成的内容创建可重用组件。

  2. 渐进式增强Nue JS是一个完美的微型库,可以使用动态组件或“孤岛”来增强你以内容为中心的网站

  3. 静态网站生成器只需将其导入到你的项目中,你就可以进行渲染了。不需要捆绑器。

  4. 单页应用程序与即将推出的Nue MVC项目一起构建更简单,更具可扩展性的应用程序。

  5. 模板化Nue 是生成你的网站和 HTML 电子邮件的通用工具。