eja*_*ang 5 amd requirejs reactjs react-jsx babeljs
我正在尝试使用Babel调用浏览器内的JSX转换.
我正在使用以下内容在浏览器中加载AMD JS模块:
require(["nbextensions/ht"] function(ext){});
Run Code Online (Sandbox Code Playgroud)
最终导入这个"ui"模块,它调用了一个函数来渲染JSX.然而,这似乎并没有触发Babel的浏览器内JSX变换器.甚至可以在RequireJS上下文中调用Babel的JSX Transformer吗?
var BOWER = '/nbextensions/ht/bower_components'
var COMPONENTS = '/nbextensions/ht/components'
var NODE_MODULES = '/nbextensions/ht/node_modules'
requirejs.config({
paths: {
es6: NODE_MODULES + "/requirejs-babel/es6",
babel: NODE_MODULES + "/requirejs-babel/babel-5.8.22.min"
}
})
define([
BOWER + '/react/react.min.js',
"es6!" + COMPONENTS + "/App.jsx"
],function(React, App){
console.log("Loaded React v" + React.version)
var ui = {}
ui.render = function() {
React.render(<App/>, document.getElementById("ht_main"))
}
return ui
})
Run Code Online (Sandbox Code Playgroud)
啊,想通了。这里使用的方法https://github.com/podio/requirejs-react-jsx确实有效,但是 RequireJS JSX 转换仅适用于导入的模块(main.js 不能混合 JSX)。
因此,Component 模块应该简单地包装在一个向 React.render 公开 render() 方法的函数原型中。
请参考 github 页面上的示例。
| 归档时间: |
|
| 查看次数: |
5164 次 |
| 最近记录: |