【发布时间】:2026-01-20 16:55:02
【问题描述】:
为了应对挑战并帮助我学习 Stenciljs,我想将团队所做的一些 React 组件转换为 Stencil 组件。
我不知道 React 和一点点 Stenciljs,但我知道 Angular。我知道 Stenciljs 是来自不同“框架”的好东西的混合体,所以我大概能理解一点。 :-)
关于组件移植有什么建议吗?
可行吗?
有人做过这种事吗?如果是这样,任何可能有用的示例或步骤都会很好。
谢谢
【问题讨论】:
为了应对挑战并帮助我学习 Stenciljs,我想将团队所做的一些 React 组件转换为 Stencil 组件。
我不知道 React 和一点点 Stenciljs,但我知道 Angular。我知道 Stenciljs 是来自不同“框架”的好东西的混合体,所以我大概能理解一点。 :-)
关于组件移植有什么建议吗?
可行吗?
有人做过这种事吗?如果是这样,任何可能有用的示例或步骤都会很好。
谢谢
【问题讨论】:
我们将在接下来的几周内做同样的事情,看起来很容易。
我们已经将 react 与 Typescript 一起使用,因此我们已经有了用于 props 和 state 的接口,只需使用装饰器 @Prop() 和 @State() 重写即可。
因为在模板中你也有一个render() 函数,类似于反应类组件,你可以复制你的反应render() 函数的代码(或者如果你有一个基本上只包含一个@987654325 的功能性反应组件@函数,复制所有内容)。
需要注意的一点是,react 中的 {children} 比 stencil 中的 <slot /> 强大得多。因此,如果您有更大的组件和很多父/子关系,那么翻译就不会那么容易,因为据我所知,您无法执行slot.map(item => <SomethingElse prop="stuff" />) 之类的操作。
【讨论】: