RactiveJS和JSX

Joe*_*oel 2 ractivejs react-jsx

RactiveJS与JSX兼容吗?

我猜一些标记不兼容.我喜欢强类型的想法,并且能够在JavaScript源代码中干净地编写模板.也许这被认为是糟糕的设计?

Ric*_*ris 14

不.React.js和Ractive.js有许多相似之处(例如,两者都是通过在内存中构建轻量级虚拟DOM来实现的),但它们有一个非常重要的区别--React完全拒绝模板的想法.

这就是说JSX 不是模板语言,它看起来就像一个!在React中,如果你有这样的东西......

<h1>Hello world!</h1>
Run Code Online (Sandbox Code Playgroud)

......它被JSX预处理器转换成类似的东西:

React.DOM.h1(null, 'Hello world!');
Run Code Online (Sandbox Code Playgroud)

换句话说,JSX描述的是函数,而不是模板.相比之下,在Ractive中,Mustache模板被解析为树状结构,可以作为JSON传输.

现在,在该示例的情况下,原始字符串经历的过程并不重要 - 它仍将最终作为某个<h1>浏览器中的元素结束.但它得到了很多困难,当你开始介绍这是指任意JavaScript this.statethis.props-的东西,可以改变反应的成分的基本结构,但在Ractive没有意义.

Ractive可能会支持Mustache以外的模板语言,但JSX不太可能是其中之一,因为它们有不同的方法和设计目标.

但是这里有一个相关的问题,它能够在一个文件中完整地描述组件.那里正在进行一些正在进行的工作 - 最可能的情况是我们将能够描述.html文件中的组件(因为您可以在HTML中使用JavaScript和CSS),而不是将模板写入.js文件.