zoukankan      html  css  js  c++  java
  • 关于ES6的 模块功能 Module 中export import的用法和注意之处

    export default 的用法

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

     1 // modules.js
     2 function add(x, y) {
     3   return x * y;
     4 }
     5 export {add as default};
     6 // 等同于
     7 // export default add;
     8 
     9 // app.js
    10 import { default as xxx } from 'modules';
    11 // 等同于
    12 // import xxx from 'modules';

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

     1 // 正确
     2 export var a = 1;
     3 
     4 // 正确
     5 var a = 1;
     6 export default a;  // 写法1
     7 export {a}  // 写法2
     8 
     9 // 错误
    10 export default var a = 1;

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

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

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

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

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

     1 // circle.js
     2 export var a = 1;
     3 
     4 // circleplus.js 当前模块继承了 circle 模块的所有输出
     5 // 此处只是继承了输出,并不能直接使用
     6 
     7 export * from 'circle';
     8 export var e = 2.71828182846;
     9 export default function(x) {
    10   return Math.exp(x);
    11 }
    12 
    13 // 继承之后,circleplus.js 相当于下面代码
    14 export var a = 1;
    15 export var e = 2.71828182846;
    16 export default function(x) {
    17   return Math.exp(x);
    18 }
  • 相关阅读:
    beanstalkd 安装和配置
    vm虚拟机用批处理启动和关闭
    Windows设置VMware开机自动启动,虚拟机也启动
    批处理脚本学习笔记1--vmware虚拟机启停控制
    Shell中uname命令查看系统内核、版本
    SHELL脚本里执行的东西需要多次回车确认,怎么实现自动回车确认?
    eclipse下搭建shell脚本编辑器--安装开发shell的eclipse插件shelled
    如何进行shell脚本正确性测试
    robot framework
    loadrunner参数化数据分配方法
  • 原文地址:https://www.cnblogs.com/wshiqtb/p/5607637.html
Copyright © 2011-2022 走看看