美文网首页
ES6模块化

ES6模块化

作者: Captain_tu | 来源:发表于2017-08-30 11:06 被阅读7次
  1. Module

    ES6的Class只是面向对象编程的语法糖, 升级了ES5的构造函数的原型链继承的写法, 并没有解决模块化问题。 Module功能就是为了解决这个问题而提出的。
    在ES6之前, 社区制定了一些模块加载方案, 最主要的有CommonJS和AMD两种。 前者用于服务器, 后者用于浏览器。 ES6在语言规格的层面上, 实现了模块功能, 而且实现得相当简单, 完全可以取代现有的CommonJS和AMD规范, 成为浏览器和服务器通用的模块解决方案。

  2. Export
    模块功能主要由两个命令构成: export和import。 export命令用于规定模块的对外接口, import命令用于输入其他模块提供的功能。

     export var firstName = 'Michael';
     export var lastName = 'Jackson';
     export var year = 1958;
    
     //或者
     var firstName = 'Michael';
     var lastName = 'Jackson';
     var year = 1958;
     export {firstName, lastName, year};
    
     //还可以输出方法和类
     export function multiply(x, y) {
         return x * y;
     };
    
     //通常情况下, export输出的变量就是本来的名字, 但是可以使用as关键字重命名。
     function v1() { ... }
     function v2() { ... }
     export {
         v1 as streamV1,
         v2 as streamV2,
         v2 as streamLatestVersion
     };
    
  3. Import
    使用export命令定义了模块的对外接口以后, 其他JS文件就可以通过import命令加载这个模块( 文件) 。

     import {firstName, lastName, year} from './profile';
     function setName(element) {
         element.textContent = firstName + ' ' + lastName;
     }
    
     //模块的整体加载
     import * as man from './profile';
     console.log('姓: ' + man .firstName());
     console.log('名: ' + man .lastName());
    
  4. export default
    使用import命令的时候, 用户需要知道所要加载的变量名或函数名, 否则无法加载。 但是, 用户肯定希望快速上手, 未必愿意阅读文档, 去了解模块有哪些属性和方法。
    为了给用户提供方便, 让他们不用阅读文档就能加载模块, 就要用到export default命令, 为模块指定默认输出。

     export default function foo() {
         console.log('foo');
     }
     //或者写成
     function foo() {
         console.log('foo');
     }
     export default foo;
     //本质上, export default就是输出一个叫做default的变量或方法, 然后系统允许你为它取任意名字。
    
     //比较两种方式
     //default
     export default function crc32() {} 
     import crc32 from 'crc32';
     //普通
     export function crc32() {};
     import {crc32} from 'crc32';

相关文章

  • 第4章 ES6模块化

    目标 模块化系统演进 ES6模块化实现 模块化概述 在 ES6 之前,社区制定了一些模块加载方案,最主要的有 Co...

  • 第4章 ES6模块化

    目标 模块化系统演进 ES6模块化实现 模块化概述 在 ES6 之前,社区制定了一些模块加载方案,最主要的有 Co...

  • 十二、模块化

    1、es6 2、闭包模块化

  • 如何在项目中使用webapck

    随着ES6的推进,从以往的CommonJS和AMD。到如今ES6中的module方案,前端模块化越来越成熟,模块化...

  • 前端模块化:ES6,CommonJS

    前端模块化 共有四种规范 ES6 Module CommonJS AMD CMD ES6 Module ES6模块...

  • 当import/export、require/module.ex

    ES6的模块化: import export default common.js的模块化: require mod...

  • ES6模块化

    模块化技术有哪些:- CommonJS(nodejs)、ES6模块化、AMD、CMD等 CommonJS:Comm...

  • JS-模块化

    ES6从官方标准带来了模块化开发规范。下面主要介绍ES6模块化开发当中最重要的export和import概念。 1...

  • js模块化规范

    一、js模块化1、模块化规范: script CommonJS AMD CMD ES6 modules 2、scr...

  • vue5

    es6新内容 class 解构赋值 扩展对象 模块化 什么是模块化 模块的作用 怎么实现模块化 模块化的标准 Co...

网友评论

      本文标题:ES6模块化

      本文链接:https://www.haomeiwen.com/subject/mzvzdxtx.html