zoukankan      html  css  js  c++  java
  • export default 和 export 区别

    1.export与export default均可用于导出常量、函数、文件、模块等
    2.在一个文件或模块中,export、import可以有多个,export default仅有一个
    3.通过export方式导出,在导入时要加{ },export default则不需要
    4. 
    (1) 输出单个值,使用export default
    (2) 输出多个值,使用export
    (3) export default与普通的export不要同时使用

    示例:

    1.export
    //a.js
    export const str = "blablabla~";
    export function log(sth) { 
      return sth;
    }
    对应的导入方式:
    
    //b.js
    import { str, log } from 'a'; //也可以分开写两次,导入的时候带花括号
    
    2.export default
    //a.js
    const str = "blablabla~";
    export default str;
    其实此处相当于为str变量值"blablabla"起了一个系统默认的变量名default,自然default只能有一个值,所以一个文件内不能有多个export default。
    对应的导入方式: //b.js import str from 'a'; //导入的时候没有花括号
    本质上,a.js文件的export default输出一个叫做default的变量,然后系统允许你为它取任意名字。所以可以为import的模块起任何变量名,且不需要用大括号包含
     

     import的文件会自动执行一次。

    import会加载且仅加载一次导入的模块

    ES6模块化与commonjs、amd区别:

    ES6 模块的设计思想是尽量的静态化,使得编译时就能确定模块的依赖关系,以及输入和输出的变量。CommonJS 和 AMD 模块,都只能在运行时确定这些东西。

    模块化统一:

    // 第一组
    export default function crc32() { // 输出
      // ...
    }
    
    import crc32 from 'crc32'; // 输入
    
    // 第二组
    export function crc32() { // 输出
      // ...
    };
    
    import {crc32} from 'crc32'; // 输入
    

      

    上面代码的两组写法,第一组是使用export default时,对应的import语句不需要使用大括号;第二组是不使用export default时,对应的import语句需要使用大括号。

    export default命令用于指定模块的默认输出。显然,一个模块只能有一个默认输出,因此export default命令只能使用一次。所以,import命令后面才不用加大括号,因为只可能唯一对应export default命令。

  • 相关阅读:
    CSS3 3D Transform
    js关闭当前页面(窗口)的几种方式总结
    JavaScript书籍阅读
    使用@media screen解决移动web开发的多分辨率问题
    ie678 兼容问题
    JS动态引入js,CSS——动态创建script/link/style标签
    扁平化设计的流行配色方案
    最简单的jquery轮播图
    ie7 z-index 失效问题
    js正则表达式手机号(邮箱)验证
  • 原文地址:https://www.cnblogs.com/mengfangui/p/9073459.html
Copyright © 2011-2022 走看看