ES6使用export和import实现模块化的方法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了ES6使用export和import实现模块化的方法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2528字,纯文字阅读大概需要4分钟。
内容图文
![ES6使用export和import实现模块化的方法](/upload/InfoBanner/zyjiaocheng/336/7725bb6cc9e54285b1267002e1cbe391.jpg)
在ES6前, 前端就使用RequireJS或者seaJS实现模块化, requireJS是基于AMD规范的模块化库, 而像seaJS是基于CMD规范的模块化库, 两者都是为了为了推广前端模块化的工具, 更多有关AMD和CMD的区别, 后面参考给了几个链接;
现在ES6自带了模块化, 也是JS第一次支持module, 在很久以后 ,我们可以直接作用import和export在浏览器中导入和导出各个模块了, 一个js文件代表一个js模块;
现代浏览器对模块(module)支持程度不同, 目前都是使用babelJS, 或者Traceur把ES6代码转化为兼容ES5版本的js代码;
前端模块化
1. 模块化的好处
前后端分离以来,经常提到前端工程化,前端工程化是一个高层次的思想,前端工程化主要包括四个方面:模块化、组件化、规范化、自动化。而模块化和组件化是为工程化思想下相对较具体的开发方式,因此可以简单的认为模块化和组件化是工程化的表现形式。
模块化带来的好处:
1 避免变量污染,命名冲突
2 提高代码复用率
3 提高维护性
4 依赖关系的管理
2. 什么是模块化?
那具体什么是模块化呢,还是举简单的例子,我们要写一个实现A功能的JS代码,这个功能在项目其他位置也需要用到,那么我们就可以把这个功能看成一个模块采用一定的方式进行模块化编写,既能实现复用还可以分而治之,同理在写样式的时候,如果我们需要某种特殊的样式,会在很多地方应用,那么我们也可以采用一定的方式进行CSS的模块化,具体说来,JS模块化方案很多有AMD/CommonJS/UMD/ES6 Module等,CSS模块化开发大多是在less、sass、stylus等预处理器的import/mixin特性支持下实现的,具体技术大家自行学习。
3. 没有ES6模块化之前是怎么表达模块化的?
在ES6前, 前端就使用RequireJS或者seaJS实现模块化, requireJS是基于AMD规范的模块化库, 而像seaJS是基于CMD规范的模块化库, 两者都是为了为了推广前端模块化的工具
4. ES6的模块化
现在ES6自带了模块化, 也是JS第一次支持module,我们可以直接作用import和export在浏览器中导入和导出各个模块了, 一个js文件代表一个js模块;
ES6的模块化的基本规则或特点:
1:每一个模块只加载一次,每一个JS只执行一次,如果下次再去加载同目录下同文件,直接从内存中读取。
2:每一个模块内声明的变量都是局部变量, 不会污染全局作用域;
3:模块内部的变量或者函数可以通过export导出;
4:一个模块可以导入别的模块
5:ES6的模块自动采用严格模式
6:模块顶级作用域的this值为undefined
7:需要外部使用的部分,必须导出才可以
5.实际应用
// 普通的使用 export var a = '1' export function sum(num1,num2){ return num1+num2 } import a from './a.js' import {sum} from './sum.js' // 重命名导出与导入 function sum(num1,num2){ return num1+num2 } export {sum as add} import {add as sum} from './sum.js' // 模块的默认值 export default function(num1,num2) { return num1 + num2 } // 在script标签中使用模块 <script type="module" src="module.js"></script> <script type="module"> import a from '../b.js' </script>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
内容总结
以上是互联网集市为您收集整理的ES6使用export和import实现模块化的方法全部内容,希望文章能够帮你解决ES6使用export和import实现模块化的方法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。