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 相关文章推荐
Node.js中使用事件发射器模式实现事件绑定详解
Aug 15 Javascript
jQuery中[attribute*=value]选择器用法实例
Dec 31 Javascript
js实现对ajax请求面向对象的封装
Jan 08 Javascript
Javascript中的迭代、归并方法详解
Jun 14 Javascript
indexedDB bootstrap angularjs之 MVC DOMO (应用示例)
Jun 20 Javascript
Bootstrap基本插件学习笔记之折叠(22)
Dec 08 Javascript
详解ES6之用let声明变量以及let loop机制
Jul 15 Javascript
JS设置随机出现2个数字的实例代码
Jul 19 Javascript
JS实现标签滚动切换效果
Dec 25 Javascript
JS中数组与对象的遍历方法实例小结
Aug 14 Javascript
vue中destroyed方法的使用说明
Jul 21 Javascript
vue路由的配置和页面切换详解
Sep 09 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维护文件系统
2006/10/09 PHP
php三维数组去重(示例代码)
2013/11/26 PHP
PHP的openssl加密扩展使用小结(推荐)
2016/07/18 PHP
详解Yii实现分页的两种方法
2017/01/14 PHP
利用PHPExcel读取Excel的数据和导出数据到Excel
2017/05/12 PHP
jQuery学习笔记之jQuery选择器的使用
2010/12/22 Javascript
Js日期选择器并自动加入到输入框中示例代码
2013/08/02 Javascript
javascript 循环调用示例介绍
2013/11/20 Javascript
JS仿淘宝实现的简单滑动门效果代码
2015/10/14 Javascript
jquery ajax局部加载方法详解(实现代码)
2016/05/12 Javascript
angularjs ui-router中路由的二级嵌套
2017/03/10 Javascript
bootstrap日期控件问题(双日期、清空等问题解决)
2017/04/19 Javascript
Vue.js特性Scoped Slots的浅析
2019/02/20 Javascript
微信小程序全局变量的设置、使用、修改过程解析
2019/09/24 Javascript
Python中的zip函数使用示例
2015/01/29 Python
Python中的FTP通信模块ftplib的用法整理
2016/07/08 Python
Python爬虫框架Scrapy实例代码
2018/03/04 Python
Python爬虫之网页图片抓取的方法
2018/07/16 Python
对python中GUI,Label和Button的实例详解
2019/06/27 Python
python解析xml文件方式(解析、更新、写入)
2020/03/05 Python
在tensorflow以及keras安装目录查询操作(windows下)
2020/06/19 Python
解决使用Pandas 读取超过65536行的Excel文件问题
2020/11/10 Python
django项目中使用云片网发送短信验证码的实现
2021/01/19 Python
JavaScript+Canvas实现自定义画板的示例代码
2019/05/13 HTML / CSS
TripAdvisor越南:全球领先的旅游网站
2017/09/21 全球购物
Farfetch台湾官网:奢侈品牌时尚购物平台
2019/06/17 全球购物
五分钟演讲稿
2014/04/30 职场文书
团结就是力量演讲稿
2014/05/21 职场文书
商铺消防安全责任书
2014/07/29 职场文书
四风问题班子对照检查材料
2014/09/27 职场文书
大学生思想道德自我评价
2015/03/09 职场文书
2015年宣传工作总结
2015/04/08 职场文书
党小组评议意见
2015/06/02 职场文书
收入证明申请书
2015/06/12 职场文书
班组长如何制订适合本班组的工作计划?
2019/07/10 职场文书
Python中快速掌握Data Frame的常用操作
2021/03/31 Python