export default 的用法

export default命令用于指定模块的默认输出。显然,一个模块只能有一个默认输出,因此export deault命令只能使用一次。所以,import命令后面才不用加大括号,相反其它的export 输出 可以有多个,且import时必须加大括号,示例如下:

 // modules.js
function add(x, y) {
return x * y;
}
export {add as default};
// 等同于
// export default add; // app.js
import { default as xxx } from 'modules';
// 等同于
// import xxx from 'modules';

正是因为export default命令其实只是输出一个叫做default的变量,所以它后面不能跟变量声明语句,而export需要跟变量声明或者大括号作为输出:

 // 正确
export var a = 1; // 正确
var a = 1;
export default a;  // 写法1
export {a}  // 写法2 // 错误
export default var a = 1;

import 时候的路径问题(新手容易碰到)

开始玩的时候,总是出现 cannot find module 问题,原来 在 import 的时候 如果不使用相对路径或者绝对路径,node默认会去node_modules/文件夹下去找,例如:

 import * as obj from 'exports'
// node 会试着去寻找 node_modules/exports.js 模块 // 正确写法
import * as obj from './exports'

关于 import * as obj from 'xx'  这种写法是把所有的输出包裹到obj对象里

对了,还有模块的继承写法:

 // circle.js
export var a = 1; // circleplus.js 当前模块继承了 circle 模块的所有输出
// 此处只是继承了输出,并不能直接使用 export * from 'circle';
export var e = 2.71828182846;
export default function(x) {
return Math.exp(x);
} // 继承之后,circleplus.js 相当于下面代码
export var a = 1;
export var e = 2.71828182846;
export default function(x) {
return Math.exp(x);
}

关于ES6的 模块功能 Module 中export import的用法和注意之处的更多相关文章

  1. (转)关于ES6的 模块功能 Module 中export import的用法和注意之处

    关于ES6的 模块功能 Module 中export import的用法和注意之处 export default 的用法 export default命令用于指定模块的默认输出.显然,一个模块只能有一 ...

  2. export import 的用法和注意之处

       1.整体引入: 会将若干export导出的内容组合成一个对象返回: import *as  api from  utils.https; api为自定义名称,可直接指定此文件中的某个方法,uti ...

  3. ES6学习笔记<五> Module的操作——import、export、as

    import export 这两个家伙对应的就是es6自己的 module功能. 我们之前写的Javascript一直都没有模块化的体系,无法将一个庞大的js工程拆分成一个个功能相对独立但相互依赖的小 ...

  4. 在浏览器中使用ES6的模块功能 import 及 export

    感谢英文原作者 Jake Archibald 的技术分享 各个浏览器对于ES6模块 import . export的支持情况 Safari 10.1. Chrome 61. Firefox 54 – ...

  5. 探索 模块打包 exports和require 与 export和import 的用法和区别

    菜单快捷导航: CommonJS 之 exports和require用法 ES6 Module 之 export 和 import 用法 CommonJS和ES6 Module的区别 循环依赖 和 解 ...

  6. ES6中export , export default , import模块系统总结

    最近在学习使用Webpack3的时候发现,它已经可以在不使用babel的情况下使用ES6的模块加载功能了. 说到ES6的模块加载功能,我们先复习一下CommonJS规范吧: 一  . CommonJS ...

  7. ES6 模块的加载实现 import和export

    ES6的Class只是面向对象编程的语法糖,升级了ES5的构造函数的原型链继承的写法,并没有解决模块化问题.Module功能就是为了解决这个问题而提出的. 历史上,JavaScript一直没有模块(m ...

  8. JavaScript ES6中export、import与export default的用法和区别

    前言 相信很多人都使用过export.export default.import,然而它们到底有什么区别呢? 在看他们之间的区别之前,我们先来看看它们的用法. ES6 import和export的用法 ...

  9. ES6中export与export default的区别

    首先要知道export,import ,export default是什么 ES6模块主要有两个功能:export和importexport用于对外输出本模块(一个文件可以理解为一个模块)变量的接口i ...

随机推荐

  1. Shader实例:边缘发光和描边

    效果图: 1.边缘发光 思路:用视方向和法线方向点乘,模型越边缘的地方,它的法线和视方向越接近90度.点乘越接近0 那么用 1-减去上面点乘的结果,来作为颜色分量,来反映边缘颜色强弱. Shader ...

  2. MSSQL 死锁查询

    SELECT SYS.DM_EXEC_REQUESTS.SESSION_ID,TEXT AS '执行SQL',CLIENT_NET_ADDRESS AS '请求IP',SYS.DM_EXEC_CONN ...

  3. Servlet和Struts2同时使用

    在做WEB项目时,要么是Struts+Spring+Hibernate,要是就直接使用servlet.这次碰到一个项目,经理想要把之前一个用servlet做的部分模块移植到当前项目下(Struts+S ...

  4. vim_cfg

    set nocompatible set langmenu=en_US let $LANG = 'en_US' source $VIMRUNTIME/delmenu.vim source $VIMRU ...

  5. jQuery的封装方式与JS中new的实现原理

    function jQuery() { return new jQuery.fn.init(); } jQuery.fn = jQuery.prototype = { init: function() ...

  6. Unity3D设计原则

    原则1:单一职责 原则2:里氏替换原则(子类扩展但不改变父类功能) 原则3:依赖倒置原则 原则4:接口隔离原则 原则5:迪米特法则(最少知道原则) 原则6:开闭原则 原则1:单一职责原则 说到单一职责 ...

  7. word页码上加横线&&word删除单页页眉

    word(2010)页码上加横线 插入——>页脚(选择年刊型)——>如图 然后拖住“竖条条”将页码拖到正中间——>点中页脚右击——>选中“表格属性”——>“边框和底纹”— ...

  8. android——判断网络状态

    平常我们玩qq的时候我们没联网 ,qq上面回显示"网络连接不给力,请检查网络连接"那么它是 通过什么方式判断网络是否连接的呢? 下面将写个案例展示如何检查网络连接状态的 由于我们这 ...

  9. mysql在同一个表上查询和更新

  10. 关于thinkphp开发的几种规范(仅限个人)

    一.只要设计到where查询语句,无论是增删改查 $cn['username'] = session('member.username'); $cn['itemid'] = $itemid; $ite ...