【发布时间】:2019-11-29 05:48:59
【问题描述】:
当您在 JS 文件中使用 JSX 时,您必须导入 React 否则生成的代码将无法编译。这是因为:
import React from 'react'
import ReactDOM from 'react-dom'
function Foo() { return 'hello world' }
ReactDOM.render(<Foo/>, document.body)
变成:
import React from 'react'
import ReactDOM from 'react-dom'
function Foo() { return 'hello world' }
ReactDOM.render(React.createElement(Foo), document.body)
所以React.createElement 中的React 是由某处的某些 babel 或 webpack 工具生成的,它在某处指定,我不记得了。我的问题首先是在哪里指定它将 JSX 转换为 React.createElement?
第二个也是主要的问题是,我如何自定义它以将 JSX 转换为 MyThing.create?我记得很久以前在virtual-dom 库中看到过这个,但我已经忘记了。想知道这样做需要什么。
我想做的是创建一个类似这样的 API
<Foo/>
<Bar/>
<Baz/>
MyThing.create('Foo')
MyThing.create('Bar')
MyThing.create('Baz')
【问题讨论】:
标签: javascript reactjs jsx babeljs