ES6 模块化

什么是模块化?

将一个js文件按照功能作用分解为多个js文件

为什么要使用模块化

使用模块化可以对不同的功能点进行统一管理,降低耦合性,减少同名的影响。每一个模块都有单独的空间。

常用模块化分类

1.CommonJS

暴露

module.exports = function add (a, b) { return a + b; }
module.exports = {........
}

引入

const result = require('./test')

2.ES6 模块化

分别暴露:

分别暴露

export const a = 10
export const getData = () => { }
// 对外暴露的实质是 {a,getData}

引入

// 按需引入【逐个引入】
import {a,getData} from './test'
// 全部引入【统一引入】
import * as Dome from './test'

引入并暴露

export {a,getData} from './test' 【暴露的为多个单个数据,模块化不合适】export * as Dome from './test' 【暴露的为一个模块】// 对外暴露的实质是 : {Dome:{a,getData}}

统一暴露:

统一暴露
const a = 10
const getApp = () => { }
export {a,getApp
}
// 对外暴露的实质是 : {a,getApp}
引入
// 按需引入【逐个引入】
import {a,getApp} from './test'
// 全部引入【统一引入】
import * as Dome from './test'
引入并暴露
export {a,getAPP} from './test' 【暴露的为多个单个数据,模块化不合适】export * as Dome from './test' 【暴露的为一个模块,模块化常用】// 对外暴露的实质是: {Dome:{a,getApp}}

默认暴露

默认暴露
=========== 书写方法一 ==========
export default {getBpp(){},a:20
}
========== 书写方法二 ==============
const a = 10,
const getBpp = () => {}
export default {a,getBpp
}
// 对外暴露的实质是 : {default:{a,getBpp}}

引入

// 简写形式
import Dome from './test'
// 完整形式
import {default as Dome} from './test'
引入并暴露[不可使用简写形式]
export {default as Dome} from './test'
// 暴露的实质是:{Dome:{a,getBpp}}

总结

  • 对外暴露出的都是一个对象,但是不同的暴露方法实际暴露的对象有所不同
  • 默认并暴露的实质就是使用 export ➕ 去除import关键字后的引入写法
  • 默认暴露在进行引入并暴露时不能进行简写
  • import引入的文件会自动收集在文件的最上方,并按照引入的顺序执行

ES6 模块化【暴露、引入、引入并暴露】相关推荐

  1. vue项目引入不符合ES6模块化标准的JS文件

    vue项目引入不符合ES6模块化标准的JS文件 实现方式 实现原理 实现方式 要引入的文件放在public目录下,在index.html中通过script标签引入 实现原理 参考vue官网–处理静态资 ...

  2. echart模块化单文件引入

    echart模块化单文件引入百度上面是推荐这样使用.今天看了一下,做了个Demo. 文件结构如下: 1 <!doctype html> 2 <html lang="en&q ...

  3. 前端工程化(ES6模块化和webpack打包)

    文章目录 目标: 目录: 1.模块化相关规范 1.1.模块化概述 1.2.浏览器端模块化规范 AMD CMD 1.3.服务器端模块化规范 CommonJS 1.4.大一统的模块化规范-ES6模块化 1 ...

  4. 全面理解ES6模块化编程

    今天我们来学习ES6的模块化系统,如何从模块中导出变量.函数.类,在其他模块中去使用. 在ES6的模块系统中,每个JS文件可以理解为一个模块,模块代码以严格模式执行,所以模块中的变量.函数不会添加全局 ...

  5. 史上最详细易懂的ES6模块化语法(重点)

    对于初次学习ES6的小伙伴来说,ES6的模块化语法是一个重点,在没有模块化之前,前端js代码有一下三句话 1.私密不漏 2.重名不怕 3.依赖不乱 一.接下来先演示在没有模块化之前,这个"私 ...

  6. Vue铺垫知识 --- ES6模块化

    Vue框架 内容管理 Vue Vue前置内容 ES6模块化 默认导出[暴露]和默认导入 按需导入和按需导出 直接导入并执行模块中的代码 安装node,vue 安装vue 创建vue项目 vue cre ...

  7. commonjs是什么_第一步:面试官让我解释什么是Common.js和ES6模块化

    前两篇文章中,有小伙伴给我留言说怎么没有模块化相关的知识点,模块化在面试中被问到的概率非常大,但因为前几篇文章篇幅实在太长了些,所以模块化知识点单独这篇文章给大家聊聊. 先说说什么是模块化,就是将独立 ...

  8. ES6 模块化的基本语法——默认导出 与 默认导入、按需导出 与 按需导入、直接导入并执行模块代码

    ES6 模块化的基本语法 注意:每个模块中,只允许使用唯一的一次 export default,否则会报错! 按需导出 与 按需导入 注意:每个模块中,可以使用多次按需导出 直接导入并执行模块代码 有 ...

  9. vue项目接口地址暴露_vue组件暴露和.js文件暴露接口操作

    1.将同一类型的组件放在一个文件夹下 2.在此文件夹下创建一个index.js 3.在index.js中导入组件,并把他们暴露出去 1.写法一 import studentCourse1 from ' ...

  10. commonjs 和 es6模块化开发入门

    commonjs模块化 首先写一个api,提供给外部调用 //commonjslet sum =(a,b)=> a+b;// 暴露接口 module.exports = {sum // sum: ...

最新文章

  1. Mysql关闭和修改密码
  2. JavaScript URL编码 代码片段记忆
  3. [基础]Linux文件说明
  4. BZOJ 2115 Wc2011 Xor DFS+高斯消元
  5. 求解九宫格的Java_使用全排列方法解九宫格问题
  6. 电脑锁屏按什么键解锁_手机屏幕密码忘了怎么解锁
  7. python实现算法改进_独门秘籍,如何从零开始用Python实现感知算法?
  8. JAVA魔法堂:折腾Mybatis操作SQLite的SQLException:NYI异常
  9. ggplot2作图详解:主题(theme)设置
  10. 深入浅出新一代云网络——VPC中的那些功能与基于OpenStack Neutron的实现(二)-带宽控制...
  11. 前端需要学python吗_python是前端语言吗
  12. 动软代码生成器v2.78Mysql备注生成完美修复dll
  13. 随机投影森林-一种近似最近邻方法(ANN)
  14. 腾讯笔试题之数字转换机
  15. js点击获取短信验证码
  16. Tomcat 安装Namecheap SSL证书教程
  17. 为魅族助攻,联发科发布Helio P25处理器
  18. eclipse开发首选项
  19. office2010如何使用excel冻结窗格
  20. Excel服务器实现多用户协作

热门文章

  1. 专访吴军:“腾讯无2B基因,谷歌太平庸”,“我说错了吗?”
  2. CTF新手抓包找flag
  3. 关于 beyondcompare 只有FTP没有 sftp 的解决方案
  4. Python:打印星号
  5. 计算机常用英语词汇一览表,计算机常用英语词汇总表
  6. leaflet快速渲染聚合矢量瓦片(附源码下载)
  7. 时间与相关类型(2) - TDate、TTime、TTimeStamp
  8. PEM 与 DER 格式详解
  9. springboot starter自定义实现公共模块
  10. Window安装RabbitMQ并设置为开机启动