JS中ES6的模塊化

原生支持模塊化了

ES6中新增的模塊化,即從ES6開始,原生js支持模塊化了,現在很多瀏覽器也支持模塊化了。

  1. 模塊化的兩個概念
    1. 導出(export關鍵字):導出就是對外開放的,可以導出變量,常量,函數,對象等等。使用export關鍵字。放在export關鍵字後面的(即對外導出的)變量,常量,函數和對象,在其它js文件中可以使用,否則,其它js文件中是不能使用的。即只能內部使用的。

           在用export導出時,可以導出多個

           如:person.js文件(模塊)裏,如下:

//導出字符串
export var str = "hello";
//導出函數
export var fun = function(){
    alert("我是函數");
}
//導出對象
export const p =  {
    "id":"007",
    "name":"張三瘋",
    "eat":function(){
        alert("喫");
        ff();
    }
}
//此函數沒有使用export關鍵字導出,所以,只能在當前js文件內部使用
function ff(){
    alert("我只能在當前js被使用");
}

 

2.導入(import):導入就是把其它js文件引入到當前js文件裏。使用關鍵字import。

在使用import導入(export導出的)時,要使用花括號,

如:import {str,fun,p} from './person.js';


在index.js文件中,引入模塊person.js;

//導入時,需要使用{},這是解構賦值。
import {str,fun,p} from './person.js';

window.onload = function(){
    document.getElementById("btn01").onclick = function(){
        console.log(str);
        fun();
        console.log(p.id);
        p.eat();
    }
}
      1. 在html文件中引入index.js(注意: type="module")
        注意:js中使用了模塊化的關鍵字import,在引入時,script標籤的type屬性的值必須寫成module。即:<script type="module" src="js/index.js"></script>
<body>
    <input id="btn01" type="button" value="測試" />
</body>
<script type="module" src="js/index.js"></script>

 

注意:測試以上代碼時,google瀏覽器要求放在服務器上進行 ,否則,就會有跨域問題。

 

    1. export defaultexport 有什麼區別:

 

  1. export與export default均可用於導出常量、函數、文件、模塊等
  2. 在一個文件或模塊中,export可以有多個,export default僅有一個,而且export default在導出是不需要變量名,相當於匿名的。
  3. 通過export方式導出,在導入時要加{ },export default則不需要

 

代碼示例:

模塊定義:dog.js

export default {
    "name":"大黃",
    "eat":function(){
        alert("喫");
    }
}

導入模塊:

import d from './dog.js';
window.onload = function(){
    document.getElementById("btn01").onclick = function(){
        console.log(d);
        d.eat();
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章