理解JS 模块化

https://www.jianshu.com/p/8573cdcde863

https://www.cnblogs.com/polk6/p/js-ES6-module.html

module.exports与exports,export与export default之间的关系和区别

 

# js 模块化规范
## 最早是闭包的写法,防止变量的污染  ,多个js 用 defer 和 async
    -  https://www.jianshu.com/p/3c4b371b0c35
    —  defer与async的区别是:defer要等到整个页面在内存中正常渲染结束(DOM 结构完全生成,以及其他脚本执行完成),才会执行;async一旦下载完,渲染引擎就会中断渲染,执行这个脚本以后,再继续渲染。一句话,defer是“渲染完再执行”,async是“下载完就执行”。而且多个js 文件的话defer 可以保证js文件的下载的顺序 。
## amd 和 cmd 在es6 module 出现之后就退出历史的舞台了
## es6 module 
>  浏览器加载 ES6 模块,也使用<script>标签,但是要加入type="module"属性
    type="module" 等同于打开了<script>标签的defer属性
    注意:必须得以服务器的模式打开   要不然会有跨域的错误   可以用 npm 安装一个anywhere
> dem> es6 module
    > 一个模块只有一个默认导出,但是可以是默认导出和对象导出的组合


    - export 语法

        -  Named exports 命名导出

            ```
                // 1)声明时导出
                    export var myVar1 = 'a';
                    export let myVar2 = 'b';
                    export const MY_CONST = 'c';
                    export function myFunc() {}
                    
                    // 2)声明后导出
                    var myVar3 = 'a';
                    export { myVar3 };
                    
                    // 3)别名导出
                    var myVar4 = 'a';
                    export { myVar4 as myVar };
            ```
        
        -   Default exports 默认导出

            ```
                // 1)声明时导出
                export default expression;
                export default function () {}
                
                // 2)别名设置为default导出
                export default function name1() {}
                export { name1 as default };

            ```

    - import 语法

        ```
            // 1)导入模块的默认导出内容
            import defaultExport from 'module-name';
            
            // 2)导入模块的命名导出内容
            import { export1, export2 } from 'module-name';
            import { export as alias } from 'module-name'; // 修改别名
            import * as name from 'module-name'; // 导入模块内的所有内容
            
            // 3)导入模块的默认导出、命名导出
            import defaultExport, { export1, export2 } from 'module-name';
            import defaultExport, * as name from 'module-name';
        
        ```

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值