ES6 模塊化

模塊化是指將一個(gè)大的程序文件, 拆分成許多小的文件,然后將小文件組合起來(lái).
1.模塊化的優(yōu)勢(shì):
(1)防止命名沖突
(2)代碼復(fù)用
(3)高維護(hù)性
2.模塊化規(guī)范產(chǎn)品
ES6之前的模塊化規(guī)范有:
(1)CommonJS規(guī)范=>nodejs,browserify
(2)AMD =>REQUIREjs
(3)CMD =>seaJS
3.ES6模塊化語(yǔ)法
模塊功能主要由兩個(gè)命令構(gòu)成:exportimport.
export命令用于規(guī)定模塊的對(duì)外接口
案例1:瀏覽器使用es6模塊引入模塊
demo.js

export const name = '小豬'
export function sayHi() {
    console.log('你好啊');
}

demo.html

    <script type="module">
      //引入demo.js模塊的內(nèi)容
      import * as demo from "./demo.js";
      console.log(demo);
      console.log(demo.name);//小豬
      console.log(demo.sayHi());//你好啊
    </script>

demo的打印結(jié)果如下所示:

1.png

本例中的這種導(dǎo)出變量的方式我們稱之為分別暴露,接下來(lái)一起來(lái)看下統(tǒng)一暴露的案例
案例2:統(tǒng)一暴露
demo.js

const name = '小豬'

function sayHi() {
    console.log('你好啊');
}
//統(tǒng)一暴露
export {
    name,
    sayHi
}

demo.html

    <script type="module">
      //引入demo.js模塊的內(nèi)容
      import * as demo from "./demo.js";
      console.log(demo);
    </script>

打印結(jié)果如下所示:


1.png

還有一種是默認(rèn)暴露,一起來(lái)看下:
案例3:默認(rèn)暴露
demo.js

// 默認(rèn)暴露
export default {
    name: 'zhangsna',
    age: 18,
    sayHello() {
        console.log('Hello');
    }
}

demo.html

    <script type="module">
      //引入demo.js模塊的內(nèi)容
      import * as demo from "./demo.js";
      console.log(demo.default.name); //zhangsna
      console.log(demo);
    </script>

打印結(jié)果如下所示:


1.png

以上總結(jié)了三種模塊導(dǎo)出的方式,接下來(lái)再來(lái)看看模塊導(dǎo)入的各種方式

import命令用于輸入其他模塊提供的功能
在上面演示模塊導(dǎo)出方法的時(shí)候我們用的導(dǎo)入方式是通用的導(dǎo)入方式,也就是我們要講的第一種模塊導(dǎo)入的方式
案例4:通用的導(dǎo)入方式

    <script type="module">
      //通用的導(dǎo)入方式
      import * as demo from "./demo.js";
      console.log(demo);
    </script>

案例5:解構(gòu)賦值的導(dǎo)入方式

    <script type="module">
      //解構(gòu)賦值的導(dǎo)入方式
  (針對(duì)案例1中的分別導(dǎo)出和案例2中的統(tǒng)一暴露)
      import { name as name1, study } from "./demo.js";//這里導(dǎo)入的時(shí)候可以給變量起別名
      console.log(name);
      console.log(study);
  (針對(duì)案例3中的默認(rèn)暴露)
      import {default as test} from "demo.js"http://這里需要注意默認(rèn)暴露會(huì)暴露出來(lái)一個(gè)default對(duì)象,所有的屬性和方法都在default身上,我們?cè)谑褂媒鈽?gòu)賦值的導(dǎo)入方式的時(shí)候需要給default器別名
    </script>

最后一種,簡(jiǎn)便形式(只針對(duì)默認(rèn)暴露)
案例6:簡(jiǎn)便形式導(dǎo)入方式

    <script type="module">
      import demo from "./demo.js";
      console.log(demo);
    </script>

打印結(jié)果和上面一樣,如下所示:


簡(jiǎn)便形式導(dǎo)入.png

關(guān)于es6模塊化導(dǎo)入導(dǎo)出我們就寫這么多

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容