模塊化的核心

模塊化核心:導出和導入;

1、普通模塊化:

同級新建文件index.html,a.js.b.js三個文件;

index.html中引入a.js和b.js。(a.js在前)

<script src="a.js"></script>
<script src="b.js"></script>

a.js中導出:

var modules=(function(){
    var name='jack';
    var flag=true;
    function num(a,b){
        return a+b;
    }
    var obj={};
    obj.flag=flag;
    obj.num=num;
    obj.name=name;


    return obj;
})()

b.js中導入:

console.log(modules.name)//jack
console.log(modules.num(1,6))//7
console.log(modules.flag)//true

在b.js可以取出a.js中obj的值。

2、commonJs模塊化:export

a.js導出:

    var name='jack';
    var flag=true;
    function num(a,b){
        return a+b;
    }
export.module({
name,
flag,
num
)}

b.js導入:

var {name,flag,num}=require('a.js的路徑');//name,flag,num可以直接用
var obj=require('a.js的路徑');//obj.name='jack',obj.flag=true,obj.num(1,6)=7

3、es6模塊化:export導出,import導入

export的基本使用:

a.js:
導出方式一:
export var name="jack";
export var height=1.88;
導出方式二:
var name="jack";
var height=1.88;
export {name,height};

b.js
import {name,height} from 'a.js';
console.log(name);//jack
console.log(height);//1.88

4、導出函數或類:

//直接導出
//export const num1=123;

//導出函數:
export function add(num1,num2){
    return num1+num2
}

//導出類
export class Person{
    run(){console.log('this.a')}
}
//導入函數和類
import {add,Person} from './export.js'
   console.log(add(1,2));
   const p=new Person();
   p.run()

5、export default:導入者自己命名。(同一個模塊中只能有一個default)

//導出
export default function(){
console.log('this.default');
}
//導入
import de from './export.js';
de();

6、普通html中引入export的兩個js文件,需要給script的type設爲module;

<script type="module" src="a.js"></script>

7、全部統一導出:*可以導入模塊中所有的export變量,

import * as all from './export.js';//all,爲*的別名,方便後續使用。
  console.log(all.num1,'aaa')

 

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