尝试做一些我认为非常简单的事情。我想导入一个现有的 JavaScript 库,然后调用它的函数。例如,我想导入 blah.js,然后调用 blah()。
import React from 'react';
import {blah} from 'blah/js/blah.js';
class MyClass extends React.Component {
constructor() {
super();
}
componentDidMount() {
window.addEventListener('resize', this.handleResize);
}
componentWillUnmount() {
window.removeEventListener('resize', this.handleResize);
}
handleResize() {
blah.blah();
}
render() {
....
}
}
export default MyClass;
只是想知道我必须做哪些神奇的事情才能完成这项工作。也许我只是错过了重点。该示例给出了错误“TypeError:_blah.blah 未定义”。
原文由 user1686620 发布,翻译遵循 CC BY-SA 4.0 许可协议
命名出口:
假设您创建了一个名为
utils.js
的文件,其中包含您希望其他模块(例如 React 组件)可用的实用程序功能。然后你会让每个函数 命名为 export :假设 utils.js 与 React 组件位于同一目录中,您可以像这样使用它的导出:
或者,如果您愿意,可以将整个模块的内容放在一个公共命名空间下:
默认导出:
另一方面,如果你有一个只做一件事的模块(可能是一个 React 类、一个普通函数、一个常量或其他任何东西)并且想要让其他人可以使用那个东西,你可以使用 默认的 export 。假设我们有一个文件
log.js
,只有一个函数可以注销它调用的任何参数:现在可以这样使用:
您不必调用它
log
当您导入它时,您实际上可以随意调用它:结合:
一个模块可以同时具有默认导出(最多 1 个)和命名导出(一个一个导入,或使用
*
和别名)。 React 实际上有这个,考虑一下: