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之卸载鼠标事件的代码
May 14 Javascript
JavaScript学习笔记之定时器
Jan 22 Javascript
js实现TAB切换对应不同颜色的代码
Aug 31 Javascript
去除html代码里面的script正则方法
May 19 Javascript
AngularJS过滤器filter用法分析
Dec 11 Javascript
通过命令行生成vue项目框架的方法
Jul 12 Javascript
Angular中封装fancyBox(图片预览)遇到问题小结
Sep 01 Javascript
JS控制鼠标拒绝点击某一按钮的实例
Dec 29 Javascript
新手必须知的Node.js 4个JavaScript基本概念
Sep 16 Javascript
layui问题之自动滚动二级iframe页面到指定位置的方法
Sep 18 Javascript
vue实现将一个数组内的相同数据进行合并
Nov 07 Javascript
Javascript前端下载后台传来的文件流代码实例
Aug 18 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实现异步调用方法研究与分享
2011/10/27 PHP
PHP通过加锁实现并发情况下抢码功能
2016/08/10 PHP
PHP基于新浪IP库获取IP详细地址的方法
2017/05/04 PHP
解决在laravel中auth建立时候遇到的问题
2019/10/15 PHP
childNodes.length与children.length的区别
2009/05/14 Javascript
js 操作css实现代码
2009/06/11 Javascript
用showModalDialog弹出页面后,提交表单总是弹出一个新窗口
2009/07/18 Javascript
JavaScript 设计模式学习 Factory
2009/07/29 Javascript
JavaScript实现穷举排列(permutation)算法谜题解答
2014/12/29 Javascript
BootStrap日期控件在模态框中选择时间下拉菜单无效的原因及解决办法(火狐下不能点击)
2016/08/18 Javascript
详解Node.js中的事件机制
2016/09/22 Javascript
Vue+webpack+Element 兼容问题总结(小结)
2018/08/16 Javascript
[16:56]heroes英雄教学 司夜刺客
2014/09/18 DOTA
python里将list中元素依次向前移动一位
2014/09/12 Python
Python连接mssql数据库编码问题解决方法
2015/01/01 Python
python访问系统环境变量的方法
2015/04/29 Python
Python+Turtle动态绘制一棵树实例分享
2018/01/16 Python
python中numpy的矩阵、多维数组的用法
2018/02/05 Python
django如何连接已存在数据的数据库
2018/08/14 Python
python用for循环求和的方法总结
2019/07/08 Python
OpenCV 模板匹配
2019/07/10 Python
postman模拟访问具有Session的post请求方法
2019/07/15 Python
python+openCV调用摄像头拍摄和处理图片的实现
2019/08/06 Python
关于Python3 类方法、静态方法新解
2019/08/30 Python
python虚拟环境模块venv使用及示例
2020/03/04 Python
纯CSS3实现移动端展开和收起效果的示例代码
2020/04/26 HTML / CSS
html5 css3网站菜单实现代码
2013/12/23 HTML / CSS
乌克兰排名第一的在线旅游超市:Farvater.Travel
2020/01/02 全球购物
大学生涯自我鉴定
2014/01/16 职场文书
关于环保的建议书400字
2014/03/12 职场文书
汽车销售员岗位职责
2015/04/11 职场文书
尼克胡哲观后感
2015/06/08 职场文书
歼十出击观后感
2015/06/11 职场文书
学子宴致辞大全
2015/07/27 职场文书
初三语文教学反思
2016/03/03 职场文书
Python合并多张图片成PDF
2021/06/09 Python