当前位置: 首页 > 后端技术 > Node.js

关于export和exportdefault你不知道的事

时间:2023-04-04 00:38:47 Node.js

网上关于export和exportdefault的文章很多。大多只讲用法,而没有提到性能、封装等关键的东西。大家应该能理解import*from'xxx'会将文件中exportdefault的内容全部打包到文件中,而import{func}from'xxx'只会导入文件中的func,所以export必然会比exportdefaultPackless要好。参见示例utils.jsconstfunc1=()=>{console.log('func1');}constfunc2=()=>{console.log('func2');}exportdefault{func1,func2}index.jsimport{render}from"react-dom";从'./common'导入common;classIndexextendsComponent{render(){common.func1();返回(123456);}}render(,document.getElementById('app'));使用此导出默认方法打包后的文件会是什么样子?我们看了一下,发现整个文件是以另一种方式打包的);}export{func1,func2}index.jsimport{render}from"react-dom";import{func1}from'./common';classIndexextendsComponent{render(){func1();返回(123456);}}render(,document.getElementById('app'));结果:只打包了func1。综上所述,exportdefault可能会打包更多不需要的内容,但在某些场景下还是用exportdefault好。所以总结如下:1.当文件包含很多方法,不同场景变量需要引用不同的方法时,请使用export2.当类只有几个方法,每个引用需要用到大部分其中的方法,请使用exportdefault,毕竟有方法提示3.导出方法时,请使用exportdefault4.如果一个文件只会是另一个文件的子文件,则不会被引用其他文件,会用到里面的方法,考虑用exportdefault。比如业务文件夹下的action.js,使用时使用importapifrom'./action';很容易识别,不需要在import的{}中重复添加,也可以使用方法提示。4.如果一个文件满足以上要求,可以同时导出和导出default