我相信 Solid 和 Svelte 的工作方式几乎相同,都使用反应图进行计算。
不同之处在于 Solid 使用函数以显式方式执行此操作,而 Svelte 执行相同的操作,但使用特殊的语法。
但它们在概念上和内部上几乎相同吗?
他们互相借鉴以及从其他框架借鉴概念和想法,但他们实现和执行这些想法的方式完全不同。
\n它们都是反应式的,不使用 VDOM,经过编译并具有相似的性能特征。
\n但 Svelte 对模块和反应元素施加了一些限制:
\n\n\n您不能
\nexport default,因为默认导出是组件本身。模块脚本中定义的变量不是反应性的 \xe2\x80\x94 重新分配它们不会触发重新渲染,即使变量本身会更新。对于多个组件之间共享的值,请考虑使用存储。https://svelte.dev/docs#component-format-script-context-module
\n
Solid 更宽松、更灵活并且更接近普通 JavaScript。事实上,它是普通的 JavaScript,只有一个例外,JSX,但它可以与本机 DOM 元素交换,并且有利于组合。在 Solid 中,编译并不是绝对必须的。UI层是可插拔的。
\n\n\nSolid 支持 3 种形式的模板 JSX、标记模板文字和 Solid 的 HyperScript 变体,尽管 JSX 是主要形式。为什么?JSX 是一款专为编译而设计的出色 DSL。它具有清晰的语法,支持 TypeScript,可与 Babel 配合使用,并支持其他工具,例如代码语法突出显示和 Prettier。使用一个基本上免费为您提供所有这些功能的工具才是务实的。作为一个编译的解决方案,它提供了出色的 DX。当您可以使用受到如此广泛支持的语法 DSL 时,为什么还要费力地使用自定义语法 DSL呢?https://www.solidjs.com/guides/rendering#rendering
\n
Svelte 有自己的语言。它感觉更像是一个具有自己古怪语法的模板库。
\n当应用程序变大时,Solid 的性能会更好。
\n| 归档时间: |
|
| 查看次数: |
2319 次 |
| 最近记录: |