博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ES6:使用export和import实现模块化
阅读量:6083 次
发布时间:2019-06-20

本文共 1331 字,大约阅读时间需要 4 分钟。

前端模块化

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标签中使用模块        

转载地址:http://qmkwa.baihongyu.com/

你可能感兴趣的文章
终结2011,吹响2012的号角
查看>>
mysql 免安装版安装(window7)
查看>>
创建可以销毁的对象代码段
查看>>
python链家网高并发异步爬虫asyncio+aiohttp+aiomysql异步存入数据
查看>>
python fabric实现远程操作和部署
查看>>
html实现用户注册页面(表单+表格)——html小练习
查看>>
WebService开发常见问题
查看>>
Tomcat 部署方式
查看>>
C# 基础学习 之 深复制和浅复制
查看>>
C结构体中数据的内存对齐问题
查看>>
QT 布局管理器的使用
查看>>
Noip2015提高组解题报告
查看>>
评论挖掘,准备研究下
查看>>
tcpdump使用
查看>>
查看自己电脑上安装了什么数据库
查看>>
网页布局基础 第三次(浮动布局)
查看>>
为什么网页中上传文件的表单里要加个属性enctype【转载】
查看>>
20+ 个很有用的 jQuery 的 Google 地图插件 (英语)
查看>>
php生产随机数
查看>>
javascript call和apply
查看>>