javascript中导出与导入实现模块化管理教程


Posted in Javascript onDecember 03, 2020

在理想情况下,开发者只需要实现核心的业务逻辑,其他都可以加载别人已经写好的模块。但是,在ES6以前,JavaScript一直没有自己模块体系(module),无法将一个大程序拆分成互相依赖的小文件,再用简单的方法拼装起来。如果要想在前端做模块化开发,必须依赖第三方框架来实现,如:requireJS与seaJS。

javascript中的导出和导入实现模块化管理

requireJS是AMD规范的起源,seaJS是CMD规范的起源,由于两者功能高度重合,后来seaJS不再维护,从此淡出人们的视野,于是requireJS一家独大,直到ES6的出现,且迅速成为前端和服务器端通用的模块解决方案,完全可以取代AMD 规范和NodeJS支持的CommonJS 规范。

ES6中首次引入模块化开发规范ES Module,让JavaScript首次支持原生模块化开发,使用 export 和 import 关键字进行模块化开发。

1 export:用于对外输出本模块

方法1 声明时直接导出

export var str = '1';

export function func1() {
 return 'hello word'
} 

export const func2 = () => {
 // 箭头函数导出
 return 'hello word'
}

方法2 统一在最后导出

var str = '1';

function func1() {
 return 'hello word'
}

const func2 = () => {
 return 'hello word'
}

export {
 str,
 func1,
 func2,
}

方法3 起别名

var str = '1';

function func1() {
 return 'hello word'
}

const func2 = () => {
 return 'hello word'
}

export {
 str as str1,
 func1 as f1,
 func2 as f2,
}

方法4 对导入的方法直接导出

这种方法常用于统一文件导出

// 这是一个utils.js 导出一个变量两个方法
var str = '1';

function func1() {
 return 'hello word'
}

const func2 = () => {
 return 'hello word'
}

export {
 str as str1,
 func1 as f1,
 func2 as f2,
}
// 这是引用utils.js的文件-config.js
export {str,func1,func2} from ‘./config.js'

方法5 默认导出(default)

这种导出方式一个js文件只能有一个default,所以它后面不能跟变量声明语句。

export default function() {}

方法6 导出类

// 这是一个utils.js 导出一个变量两个方法
export class utils {

 format(){
  // 类方法1
 };
 cheackData(){
  // 类方法2
 }
}
// 调用utils文件中
import {utils} from ‘./utils.js'

const utils = new utils();
utils.format();
utils.cheackData();

2 import:用于在模块中加载含有export接口的模块

方法1 直接导出

import {str,func1,func2} from ‘./utils.js'

方法2 起别名

这种情况一般用于导入的两个或者多个模块中存在相同的导入内容

import {str as str1,func1 as f1,func2 as f2} from ‘./utils.js'

方法3 一次导入文件中所有

import * as utils from ‘./utils.js'

utils.str
utils.func1
utils.func2

方法4 导入使用default方式导出的模块

import utils from ‘./utils.js'

到此这篇关于javascript中导出与导入实现模块化管理教程的文章就介绍到这了,更多相关javascript导出与导入模块化管理内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
JavaScript TO HTML 转换
Jun 26 Javascript
基于jquery的网页SELECT下拉框美化代码
Oct 28 Javascript
基于React.js实现原生js拖拽效果引发的思考
Mar 30 Javascript
JS实战篇之收缩菜单表单布局
Dec 10 Javascript
微信小程序 tabs选项卡效果的实现
Jan 05 Javascript
Angular如何引入第三方库的方法详解
Jul 13 Javascript
bootstrap可编辑下拉框jquery.editable-select
Oct 12 jQuery
关于angularJs清除浏览器缓存的方法
Nov 28 Javascript
使用electron制作满屏心特效的示例代码
Nov 27 Javascript
微信小程序云开发之新手环境配置
May 16 Javascript
vue使用showdown并实现代码区域高亮的示例代码
Oct 17 Javascript
微信小程序可滑动月日历组件使用详解
Oct 21 Javascript
JS如何实现在弹出窗口中加载页面
Dec 03 #Javascript
对vue生命周期的深入理解
Dec 03 #Vue.js
在实例中重学JavaScript事件循环
Dec 03 #Javascript
js 数据类型判断的方法
Dec 03 #Javascript
用vue设计一个日历表
Dec 03 #Vue.js
JS闭包原理及其使用场景解析
Dec 03 #Javascript
实用的 vue tags 创建缓存导航的过程实现
Dec 03 #Vue.js
You might like
推荐php模板技术[转]
2007/01/04 PHP
php计算数组相同值出现次数的代码(array_count_values)
2015/01/20 PHP
在html文件中也可以执行php语句的方法
2015/04/09 PHP
JS通过相同的name进行表格求和代码
2013/08/18 Javascript
jquery复选框多选赋值给文本框的方法
2015/01/27 Javascript
js实现适用于素材网站的黑色多级菜单导航条效果
2015/08/24 Javascript
跟我学习javascript的最新标准ES6
2015/11/20 Javascript
jquery设置表单元素为不可用的简单代码
2016/07/04 Javascript
很棒的js选项卡切换效果
2016/07/15 Javascript
Angular工具方法学习
2016/12/26 Javascript
vue2.0项目实现路由跳转的方法详解
2018/06/21 Javascript
webpack+vue-cil中proxyTable处理跨域的方法
2018/07/20 Javascript
React 项目迁移 Webpack Babel7的实现
2018/09/12 Javascript
浅谈VueJS SSR 后端绘制内存泄漏的相关解决经验
2018/12/20 Javascript
RxJS的入门指引和初步应用
2019/06/15 Javascript
ES6 class类链式继承,实例化及react super(props)原理详解
2020/02/15 Javascript
详解如何修改 node_modules 里的文件
2020/05/22 Javascript
在vue项目中promise解决回调地狱和并发请求的问题
2020/11/09 Javascript
Python 中开发pattern的string模板(template) 实例详解
2017/04/01 Python
Python基于sklearn库的分类算法简单应用示例
2018/07/09 Python
Python实现的银行系统模拟程序完整案例
2019/04/12 Python
python flask 如何修改默认端口号的方法步骤
2019/07/12 Python
通过python3实现投票功能代码实例
2019/09/26 Python
pytorch 利用lstm做mnist手写数字识别分类的实例
2020/01/10 Python
解决Jupyter notebook中.py与.ipynb文件的import问题
2020/04/21 Python
详解pandas绘制矩阵散点图(scatter_matrix)的方法
2020/04/23 Python
使用css3实现的windows8开机加载动画
2014/12/09 HTML / CSS
Weblogic和WebSphere不同特点
2012/05/09 面试题
Structs界面控制层技术
2013/10/11 面试题
机电专业大学生求职信
2013/10/04 职场文书
大学毕业生求职自荐信
2014/02/20 职场文书
2014领导干部学习焦裕禄同志先进事迹思想汇报
2014/09/19 职场文书
如何拟写通知正文?
2019/04/02 职场文书
《悲惨世界》:比天空更广阔的是人的心灵
2020/01/16 职场文书
Python的三个重要函数详解
2022/01/18 Python
Python读写yaml文件
2022/03/20 Python