require 与 export 、 import

2019-08-09  本文已影响0人  李霖弢

require

require是common.js的规范方法,在nodeJs中直接支持,在浏览器中需先通过webpack打包变相支持

module.exports 和 exports

module.exportsexports都是NodeJs中默认存在的空对象,默认指向同一块内存
require引入的对象本质上是module.exports,因此如果直接对exports赋值,则会导致两者不全等。应通过export.XXX=XXX进行赋值。

export 和 import 命令

export、import是ES6语法

<script type="module" src="./demo_export.js"></script>
<script type="module">
  import "./demo_export.js";
</script>

1、export default 向外暴露的成员,可以使用任意不带{}的变量来接收
2、在一个模块中,export default 只允许向外暴露一次,export 可以有多个
3、在一个模块中,可以同时使用 export defaultexport 向外暴露成员
4、使用export向外暴露的成员,只能使用{ }的形式来接收,这种形式,叫做【按需导出】
5、export可以向外暴露多个成员
6、使用export导出的成员,必须严格按照导出时候的名称使用{ }按需接收
7、使用export导出的成员,如果想换个变量名称接收,可以使用 as 来起别名,也可以在 import 时再用 as 改名


export

相当于把对象添加到module的exports中。

function hello(){
...
}
var num = 100;
export { hello,num }

等价于

export function hello(){
...
}
export var num = 100;
export default

相当于把对象添加到module的exports中,并且对象的key叫default

export default 100;

等价于

var num = 100;
export default num;

import
//export.js
function hello(){
...
}
var num = 100;
export { hello as myFun,num }
export default 'hello world';
<script type="module">
import myString,{myFun as newFun,num} from './export.js';
import * as allParams from './export.js';
console.log(allParams);
</script>

export defaultexport 内容,可以在一句import中一起引入
注意 , 对于 export default 的内容, import 时不能 as


import() 函数

通过import()函数可实现动态加载,通常用于按需加载/条件加载,弥补了import只能位于模块顶层的缺陷。
import()返回一个Promise对象。

button.addEventListener('click', event => {
  import('./dialogBox.js')
  .then(dialogBox => {
    dialogBox.open();
  })
  .catch(error => {
    /* Error handling */
  })
});
上一篇 下一篇

猜你喜欢

热点阅读