ES6 24.Module模块化

要点:1.浏览器加载   2.Node加载

一、ES6模块化

1.ES6支持模块化设计,也能其它后端语言一样使用导入导出的功能

2.先创建一个要被导入的模块module.js :

export let name='Mr.Lee'; //导出这个变量

 

3.再创建一个普通的 .js 文件,比如24.js ,然后导入module.js;

import { name } from "./module.js";

console.log(name);

 

4.最后,在   .html  文件要加载24.js 文件,才有效,注意type格式

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

 

ps:注意,这种导入导出的方式属于ES6 模块,仅支持浏览器模式

 

5.除了导出变量、常量之外,还可以导出函数、类等功能

export let name='Mr.Lee'; //导出这个变量

export function sum(x,y){
    return x+y;
}
export class Person{
    constructor(name){
        this.name=name;
    }
    run(){
        return 'name:'+this.name;
    }
}

//24.js
import {name,sum,Person} from "./module.js";
console.log(name);
console.log(sum(10,20));
console.log((new Person('Mr.Lee')).run());

 

6.也支持使用 * 号,将所有导出的内容全部加载进来

import * as obj from './module.js';

console.log(obj.name);
console.log(obj.sum(10,20));
console.log((new obj.Person('Mr.Lee')).run());

 

 7.支持别名设定,设定别名后,源名即失效了

import {name as user} from './module.js';

console.log(user);  //name无效了

 

8.统一导出方案,不需要再每个导出的内容设置 export;

let name='Mr.Lee'; //导出这个变量

function sum(x,y){
    return x+y;
}
class Person{
    constructor(name){
        this.name=name;
    }
    run(){
        return 'name:'+this.name;
    }
}
export {
    name,
    sum,
    Person
}

 

9.可以给导出设置一个默认值,导入部分就不用花括号了

export default name;
export {
    sum,
    Person
}

 import name from './module.js';
 import {sum,Person} from './module.js';
 console.log(name); 
 console.log(sum(10,20));
console.log((new Person('Mr.Lee')).run());

 

二、Node加载

1.Node下有自己的导出和导入的加载模式:CommonJS 规范:

let name='Mr.Lee'; //导出这个变量

//新建 common.js
module.exports={
    name:'Mr.Lee'
}

//24.js
const name= require('./common.js');
console.log(name);  //{ name: 'Mr.Lee' }
posted @ 2021-11-28 23:11  翟莹萍  阅读(41)  评论(0编辑  收藏  举报