为什么选择 Solid ?
Solid 是一个轻量级且细粒度的 JavaScript Web 框架,用于构建响应式和高性能的 Web 应用程序。
Solid 专注于使开发体验与用户体验一样好且可预测,以下是我们能够实现这一目标的一些方法。
粒度
Solid 在构建时考虑了细粒度的反应性,因此不使用虚拟 DOM,而是使用编译器。
通过设置函数的实现,Solid 能够跟踪和更新组件的反应部分,使 Solid 能够摆脱虚拟 DOM 和可能随之而来的任何其他复杂渲染技术。
因此,您无需担心重新渲染或重新运行不应该重新渲染或重新运行的东西的副作用,因为它们位于同一组件中。
提示
对于 React、Vue 和 Elm 等声明式 Web 框架,虚拟 DOM 是文档对象模型的紧凑 JavaScript 表示形式。
例如,您有一个反应数值,每次按下按钮时都会发生变化,它会递减或递增。但是,此值深度嵌套在标记中,甚至嵌套在标记内的文本中。
其他框架将完全更新并重新渲染直接包含它的组件,而 Solid 则仅更新并重新渲染反应值。是的,我的意思是只有值,它不会改变周围的任何东西,甚至同一标签中的文本也保持不变。
易于使用
Solid 易于理解且易于上手,即使对于几乎没有 Web 开发经验的开发人员也是如此。Solid 建立在 JSX 和函数组件语法之上,因此它提供了与 React 和 Preact 等框架非常熟悉的体验。
这种易用性不仅适用于 Web 框架 Solid,也适用于 Solid 必须提供的其他一切,例如它的原语。我们希望确保一切都是轻量级的,需要零到低的经验,并且易于理解。
例如,您可以在任何您想要的地方使用 createSignal
原语,无论是在组件内部还是外部,您甚至可以将它们放在文件外部并导入它们 😅,这完全取决于您满意的内容。
全面
借助 Solid,启动项目所需的一切都是内置的,提供状态管理、数据获取、缓存、反应性等功能。
就像 Astro 的人们会说的那样,“选择加入复杂性”,因为 Solid 被构建为一站式 Web 框架,适用于所有状态管理、响应性以及介于两者之间的一切。
在本页中,我们一直在讨论原语,在本节中,我们将讨论为什么它们如此重要以及我们为什么提供它们。
Solid 由 3 个主要基元组成,即 Signal、Memo 和 Effect,它们分别提供状态管理、缓存和跟踪。这些都是建立在观察者模式之上的。
另一个很酷的原语是原语,createResource
它使 Solid 可以轻松使用异步数据,而不必停止执行过程或延迟任何其他事情,除非有意。我们将在反应性部分对此进行更多讨论