js之模块化(3)

作者: 哆啦C梦的百宝箱 | 来源:发表于2022-07-14 15:24 被阅读0次

随着ES6 Module的出现,我们在项目中也大概率的采用了ES6 Module的写法,主要是采用import 和export关键字,进行引入和导出。具体语法课参考https://www.jianshu.com/p/e595c376573e
当然后来还出现了动态导入,也就是懒加载可参考
https://www.jianshu.com/p/e595c376573e

ES6 Module和Commonjs的区别

commonjs只能在运行的时候,确定导出的内容,但是ES6 Module是在编译阶段,确定依赖关系,也就是说编译时加载。正因为如此,import具有提升效果。

所以下面写法是合法的

const age = getAge()
import { getAge } from 'a.js'

因为ES6 Module是在编译的时候加载,所以我们在引入的时候不能使用表达式和变量。因为这些是要在运行时才能得到结果的。

// 报错
let module = 'a.js'
import { name } from module

前几篇帖子有提到过commonjs中,使用require引入,是对导出值的深拷贝,也就是说之后,模块再怎么变化,也不会影响到该值。
之前的例子:

// a.js
var name = 'morrain'
var age = 18
exports.name = name
exports.age = age
exports.setAge = function(a){
    age = a
}

// b.js
var a = require('a.js')
console.log(a.age) // 18
a.setAge(19)
console.log(a.age) // 18

对于ES6 Module写法

//a.js
var name = 'morrain'
var age = 18
setAge = function(a){
    age = a
}
export {name,age,setAge}
//b.js
import * as a from 'a.js';
console.log(a.age) // 18
a.setAge(19)
console.log(a.age) // 19

相关文章

  • js之模块化(3)

    随着ES6 Module的出现,我们在项目中也大概率的采用了ES6 Module的写法,主要是采用import 和...

  • 模块化开发

    js模块化开发vue模块化开发

  • 2-1、模块化

    一、JS模块化 (1)命名空间 (2)CommonJS (3)AMD (4)CMD (5)UMD (5)ESM (...

  • Javascript 模块化

    Javascript 模块化发展的历史精读 js 模块化发展直接定义依赖 (1999): 由于当时 js 文件非常...

  • js模块化规范

    title: js模块化date: 2019-01-30 17:49:22tags: js 1.无模块化 缺点:1...

  • js 模块化

    尚硅谷_JS模块化 笔记

  • 06Vue的前端工程化

    Vue的前端工程化 一 模块化规范 1.1模块化规范举例 浏览器端JS模块化规范:AMD,CMD 服务器端JS模块...

  • 模块化开发

    什么是模块化? 模块化就是讲js文件按照功能分离,根据需求引入不同的文件中。源于服务器端。 js模块化方案有AMD...

  • 前端模块化

    在学node.js, 实际上就是基于common.js开发的,所以了解了一下模块化开发。 JS的模块化初衷和所有语...

  • 04-webpack核心基础-ES6模块化

    一、模块化概述 在ES6出现之前,JS不像其他语言拥有“模块化”这一概念,于是为了支持JS模块化我们使用类、立即执...

网友评论

    本文标题:js之模块化(3)

    本文链接:https://www.haomeiwen.com/subject/ofwxirtx.html