前言
在我的项目开发的过程中,一些共用的数据、办法、类等能够封装成模块进行输入,咱们在须要的中央加载该模块,就省去了大量的重复性代码。
如何模块化开发就用到了 ES6 的常识:export 和 import。
export
相对输入
就是肯定要有变量名或者办法名,能力进行输入。
export function test () {} // 正确的
export function () {} // 谬误的
能够间接在变量、办法前进行 export
export var test = "123"
export var test = function () {}
export var test = function test1 () {} // 输入 test 变量
export function test () {}
在任意地位进行 export 输入变量
必须给输入的变量名或者办法名加括号 {}
var test = "123"
export {test}
var test1 = function () {}
export {test1}
应用规定
一个文件中能够屡次应用 export 并且 export 也能够一次输入多个变量
var test = "123"
export {test}
var test1 = function () {}
export {test1}
export {test,test1}
export default
默认输入
就是不搞绝对化了,我默认输入一个变量或者办法(匿名办法也能够),你援用的时候能够用任意变量名进行援用。
从实质上来说 export default 就是输入一个定义为 default 的变量或办法,所以它前面不能跟变量申明语句
export default function () {} // 也是正确的
export default var test = function () {} // 谬误的
能够间接在变量、办法前进行 export default
export default function () {}
export default function test () {}
在任意地位进行 export default 输入变量
不须要给输入的变量名或者办法名加 {}
var test = "123"
export default test
///////
var test1 = function () {}
export default test1
应用规定
一个文件中只能应用一次 export default 并且 export default 一次只能输入一个变量
import
应用 export 命令定义了模块的对外接口当前,其余 JS 文件就能够通过 import 命令加载这个模块。
加载 export 输入的模块
加载的模块的变量名、函数名必须与 export 输入的变量名统一且须要加括号 {}
//index.js 文件
var test = function () {}
export {test}
// 同文件夹下 test.js 文件
import {test} from './index.js' // 正确的
import test from './index.js' // 谬误的
import {test1} from './index.js' // 谬误的
加载 export default 输入的模块
加载的模块的变量名、函数名能够是任意的且不须要加括号 {}
//index.js 文件
var test = function () {}
export default test
// 同文件夹下 test.js 文件
import test from './index.js' // 正确的
import test1 from './index.js' // 正确的
import()
应用 import() 函数,能够实现动静加载。
import('./index.js')
.then((res) => {// ...});
- import() 返回一个 Promise 对象,import() 加载模块胜利当前,这个模块会作为一个对象,当作 then 办法的参数。
- import() 是异步加载。
- import() 通常用于按需加载、条件加载、动静的模块门路。