module.exports,export和export default的区别

您所在的位置:网站首页 model与module区别 module.exports,export和export default的区别

module.exports,export和export default的区别

#module.exports,export和export default的区别| 来源: 网络整理| 查看: 265

1.module.exports

module变量表示当前的模块,同时该变量是一个对象,module对象会创建一个叫exports的属性,这个属性的默认值是一个空的对象,可以人为为其赋予不同的属性值。

//routes.js module.exports.Name="";

Tips:在项目中可能存在两种引入module.exports的方式,其根本都是require方式。

     方式1.利用ES6的import方法导入方式require引入router模块

import router from './router'

     方式2.利用CommonJS的模块导入方式require引入router模块,需要使用.default来获取实际的组件选项

var router=require('./routes').default

出现方式2的原因:webpack打包编译时,babel@5及之前的版本可以把export和import转换成node的module.exports和require,但是babel@6版本开始不再把export default转成node的module.exports

eg export default 'router' require('./router.js')//{默认值:'router'} require('./router.js').default//'router'

2.exports和module.exports的关系

Node为每个模块都提供了一个exports变量,指向module.exports。

可以通俗的理解为下式:

var exports=module.exports

但是两者并不完全相等

1.module.exports可以直接导出一个匿名函数或者一个值 module.exports=function(){} 2.exports不可以这样 exports=function(){} 这样写是错的

3.export和export default的区别

export是es6引出的语法,用于导出模块中的变量,对象函数等内容,对应的导入关键字是import

区别:

1.export default在一个模块中最多只能有一个,export可以有多个

2.export default的对象、变量等可以没有名字,export必须有名字

3.export default对应的import和export有一定的区别

1.export的写法 //app.js var name=".." var say=function(){} export{name,say} //其他页面引入时 import {name,say} from "./app.js" 2.export default //app.js (1)export default function(){//可以没有函数名 return data; } (2)const data=12; export default data; //其他页面引入 import data from './app.js'

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3