举个例子
// a.jsx 文件
import { useEffect } from 'react';
import { useMount } from "utils";
useMount() // 报错 'useEffect' is not defined no-undef
// utils 文件,在这个文件里不引入 useEffect
export const useMount = (callback) => {
useEffect(() => {
console.log('我执行了useMOunt');
}, [])
}
我自己的理解是,因为在引入 useMount 之前已经引入了 useEffect 了,所以在调用时,通过作用域链的查找不是应该可以找到 useEffect 吗,为什么会出现未定义的错误,希望有大神可以解答我的疑问,感谢。
es6 模块的代码都是单独的作用域,utils 模块里面是无法访问 a.jsx 定义的变量的
// 编译后的文件, 伪代码