模块
模块
核心是管理依赖,解决冲突问题
模块标识符问题
js
1
2
3
4
5
6
const nums = [1,2,3]nums.map(num=>{console.log(num);});
jsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function Counter() {const [count, setCount] = React.useState(0);return (<div style={{ padding: '20px', border: '1px solid #ddd', borderRadius: '8px' }}><h3>计数器示例</h3><p>当前计数: {count}</p><button onClick={() => setCount(count + 1)} style={{ marginRight: '8px' }}>增加</button><button onClick={() => setCount(count - 1)}>减少</button><button onClick={() => setCount(0)} style={{ marginLeft: '8px' }}>重置</button></div>);}
es6之前的模块加载器
commonJS,同步模块 AMD,异步模块加载
UMD,通用模块定义,最终生成一个立即调用函数表达式
如何调用iife导出文件中定义的函数呢?
模块行为
es6模块借鉴了commonJS和AMD的许多特性, 单例
同时,es6也新增了一些新行为 默认在严格模式下执行. es6不同享全局命名空间. 模块顶级this的值是undefiend而不是window. 模块中的var声明不会添加window对象. es6模块是异步加载和执行的.
const
导出
默认导出 export default,
一个模块至多只能有一个默认导出