【发布时间】:2018-10-27 11:33:27
【问题描述】:
对于import 和require,我似乎根本缺乏理解。根据我的阅读,我知道区别在于 require 是基于像 CommonJS 这样的模块加载器,而 import 实际上是 ES6 功能。
假设如下:
import ExamplePost from 'example-post.md'
这是一个使用 MDX JS 作为适当加载器的示例导入,我 在我的 React 渲染函数中设置如下:
render () {
return <ExamplePost />
}
上面的工作非常好,但是
因为我想动态加载不同的 Markdown 文件,并且我读到 ES6 import 是静态的,所以我打算这样做:
let postName = 'example-post'
const ExamplePost = require(`${postName}.md`)
不幸的是它不起作用,我得到:ExamplePost is not defined
我将这两个示例都放在文档的顶部。我还检查了两个版本,我可以看到结果有所不同:
ES6 导入返回:[Function]
要求退货:Object [Module] { default: [Function] }
帮助我了解为什么上面的 require 不能正常工作?
【问题讨论】:
标签: javascript reactjs