default什么意思

更新时间:2022-11-25 15:16:56 阅读: 评论:0


2022年11月25日发(作者:1000日元是多少人民币)

export和exportdefault的区别

export命令⽤于规定模块的对外接⼝。

⼀个模块就是⼀个独⽴的⽂件。该⽂件内部的所有变量,外部⽆法获取。如果你希望外部能够读取模块内部的某个变量,就必须使⽤export关

键字输出该变量。下⾯是⼀个JS⽂件,⾥⾯使⽤export命令输出变量。

//

exportvarfirstName='Michael';

exportvarlastName='Jackson';

exportvaryear=1958;

上⾯代码是⽂件,保存了⽤户信息。ES6将其视为⼀个模块,⾥⾯⽤export命令对外部输出了三个变量。

export的写法,除了像上⾯这样,还有另外⼀种。

//

varfirstName='Michael';

varlastName='Jackson';

varyear=1958;

export{firstName,lastName,year};

上⾯代码在export命令后⾯,使⽤⼤括号指定所要输出的⼀组变量。它与前⼀种写法(直接放置在var语句前)是等价的,但是应该优先考虑

使⽤这种写法。因为这样就可以在脚本尾部,⼀眼看清楚输出了哪些变量。

export命令除了输出变量,还可以输出函数或类(class)。

exportfunctionmultiply(x,y){

returnx*y;

};

上⾯代码对外输出⼀个函数multiply。

export命令对外输出了指定名字的变量(变量也可以是函数或类)。

与exportdefault命令的区别:import命令接受⼀对⼤括号,⾥⾯指定要从其他模块导⼊的变量名。⼤括号⾥⾯的变量名,必须与被导⼊模块

()对外接⼝的名称相同。

如果想为输⼊的变量重新取⼀个名字,import命令要使⽤as关键字,将输⼊的变量重命名。

import{lastNameassurname}from'./';

exportdefault命令,为模块指定默认输出。

使⽤import命令的时候,⽤户需要知道所要加载的变量名或函数名,否则⽆法加载。但是,⽤户肯定希望快速上⼿,未必愿意阅读⽂档,去了解模块有哪些属性

和⽅法。

为了给⽤户提供⽅便,让他们不⽤阅读⽂档就能加载模块,就要⽤到exportdefault命令,为模块指定默认输出。

//

exportdefaultfunction(){

('foo');

}

上⾯代码是⼀个模块⽂件,它的默认输出是⼀个函数。

与export命令的区别:其他模块加载该模块时,import命令可以为该匿名函数指定任意名字。

//

importcustomNamefrom'./export-default';

customName();//'foo'

上⾯代码的import命令,可以⽤任意名称指向输出的⽅法,这时就不需要知道原模块输出的函数名。需要注意的是,这

时import命令后⾯,不使⽤⼤括号。

本质上,exportdefault就是输出⼀个叫做default的变量或⽅法,然后系统允许你为它取任意名字。所以,下⾯的写法是有效的。

//

functionadd(x,y){

returnx*y;

}

export{addasdefault};

//等同于

//exportdefaultadd;

//

import{defaultasfoo}from'modules';

//等同于

//importfoofrom'modules';

正是因为exportdefault命令其实只是输出⼀个叫做default的变量,所以它后⾯不能跟变量声明语句。

总结:export命令对外接⼝是有名称的且import命令从模块导⼊的变量名与被导⼊模块对外接⼝的名称相同,⽽exportdefault命令对外输出

的变量名可以是任意的,这时import命令后⾯,不使⽤⼤括号。

exportdefault命令⽤于指定模块的默认输出。显然,⼀个模块只能有⼀个默认输出,因此exportdefault命令只能使⽤⼀次。所以,import命令后

⾯才不⽤加⼤括号,因为只可能唯⼀对应exportdefault命令。

本文发布于:2022-11-25 15:16:56,感谢您对本站的认可!

本文链接:http://www.wtabcd.cn/fanwen/fan/90/19249.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:merit
下一篇:apart from
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图