模块之间导出与引入

1.导入导出语法的使用范围

   require:  node和es6都支持的引入

    export / import: 只有es6支持的导出、引入

    module.exports / exports :只有node支持的导出


2.Node模块

    Node模块遵循的是CommonJS规范。

CommonJS

    exportsmodules.exports: 在node执行一个文件的时候,会给这个文件生成两个对象module和exports。而modules对象有一个exports的属性。内存关系如图:

指向图

    require引入的内容其实是module.exports指向的内存块内容,并不是exports的,虽然node在执行文件的时候会把两个变量都指向一样的内存块,但是手动修改了,就不一样了。

    所以exports得作用就是辅助module.exports添加内容用的。"我exports辛辛苦苦把数据都操作完了,结果require的是module.exports的数据。我不高兴!"

    但是还是推荐用module.exports导出。require引入。

3.ES中的模块引入与导出

    export 和export default :

        1.均可用于导出常量、函数、文件、模块等。

        2.一个文件中,可以有多个export和import。但是只能有一个export default

        3.通过export方式导出,要在导入时加{  }    //  import { name } from "/.a.js"

        4.export 能直接导出变量表达式,export drfault不行

4.原文链接:https://segmentfault.com/a/1190000010426778  

感谢!!!

你可能感兴趣的:(模块之间导出与引入)