Performing jsx transforms on the client
我正在构建一个允许用户构建和应用他们自己的组件和模板的应用程序。我想允许用户编辑 jsx 数据字符串,然后执行转换客户端以进行渲染。
虽然浏览器中的转换对嵌入式脚本执行 jsx 转换,并且服务器上提供了 react-tools,但我无法确定如何使转换功能对客户端可用。
内联浏览器转换似乎没有提供任何访问方法,当我尝试在客户端上使用 react-tools 转换时,Atomify/Browserify 崩溃。
JSXTransformer 模块导出两个函数:
-
transform 将 JSX 源代码作为字符串并返回一个对象,其键名为 code,其值是一个 JavaScript 字符串,然后可以进行 eval\\’d。
-
exec 像 transform 一样工作,然后将结果传递给 eval.
这个电话:
1
|
JSXTransformer.transform(“React.createClass({render: function() { return ; } });”).code
|
…产生这个纯 JavaScript 输出:
1
|
“React.createClass({render: function() { return React.createElement(“div“, null); } });”
|
- 伟大的!但我的问题是:如何让 JSXTransformer 模块在客户端可用?
- 啊,由于某种原因,当我将其设为全球时,我错过了它。现在一切都清楚了。谢谢!
JSXTransformer 在 2015 年中被弃用,取而代之的是 Babel 的浏览器内解决方案,babel-standalone:https://babeljs.io/docs/setup/#installation
在这里讨论:https://github.com/facebook/react/issues/5497
来源:https://www.codenong.com/27177430/