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 相关文章推荐
更换select下拉菜单背景样式的实现代码
Dec 20 Javascript
js 弹出框只弹一次(二次修改之后的)
Nov 26 Javascript
js获取视频时长代码
Apr 10 Javascript
很棒的Bootstrap选项卡切换效果
Jul 01 Javascript
完美实现八种js焦点轮播图(下篇)
Apr 20 Javascript
js实现方块上下左右移动效果
Aug 17 Javascript
后台使用freeMarker和前端使用vue的方法及遇到的问题
Jun 13 Javascript
Vue动态生成表格的行和列
Jul 18 Javascript
JS实现的tab切换并显示相应内容模块功能示例
Aug 03 Javascript
微信小程序wxs实现吸顶效果
Jan 08 Javascript
javascript实现贪吃蛇小游戏
Jul 28 Javascript
详解如何在Javascript中使用Object.freeze()
Oct 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中cookie的作用域
2008/03/27 PHP
PHP中获取内网用户MAC地址(WINDOWS/linux)的实现代码
2011/08/11 PHP
php中数据库连接方式pdo和mysqli对比分析
2015/02/25 PHP
Google Suggest ;-) 基于js的动态下拉菜单
2006/10/11 Javascript
javascript之对系统的toFixed()方法的修正
2007/05/08 Javascript
一个js封装的不错的选项卡效果代码
2008/02/15 Javascript
教你如何使用firebug调试功能了解javascript闭包和this
2015/03/04 Javascript
jQuery实现给页面换肤的方法
2015/05/30 Javascript
jquery简单插件制作(fn.extend)完整实例
2016/05/24 Javascript
JavaScript原生数组Array常用方法
2017/04/06 Javascript
vue.js中mint-ui框架的使用方法
2017/05/12 Javascript
基于vue2.x的电商图片放大镜插件的使用
2018/01/22 Javascript
解析Json字符串的三种方法日常常用
2018/05/02 Javascript
微信小程序动态生成二维码的实现代码
2018/07/25 Javascript
vue实现的组件兄弟间通信功能示例
2018/12/04 Javascript
Vue使用Element实现增删改查+打包的步骤
2020/11/25 Vue.js
[00:43]FTP典藏礼包 DOTA2三大英雄霸气新套装
2014/03/21 DOTA
关于numpy中np.nonzero()函数用法的详解
2017/02/07 Python
python实现的AES双向对称加密解密与用法分析
2017/05/02 Python
python smtplib模块自动收发邮件功能(一)
2018/05/22 Python
python查看模块,对象的函数方法
2018/10/16 Python
解决pycharm 误删掉项目文件的处理方法
2018/10/22 Python
python实现文件助手中查看微信撤回消息
2019/04/29 Python
Python中bisect的使用方法
2019/12/31 Python
15个应该掌握的Jupyter Notebook使用技巧(小结)
2020/09/23 Python
HTML5 DeviceOrientation实现手机网站摇一摇功能代码实例
2015/04/24 HTML / CSS
德国原装品牌香水、化妆品和手表网站:BRASTY.DE
2016/10/16 全球购物
澳大利亚冒险体验:Adrenaline(跳伞、V8赛车、热气球等)
2017/09/18 全球购物
SneakerStudio英国:最佳运动鞋商店
2019/05/22 全球购物
服装销售人员求职自我评价
2013/09/26 职场文书
初中生期末考试的自我评价
2013/12/17 职场文书
军训学生自我鉴定
2014/02/12 职场文书
春节联欢晚会主持词
2014/03/24 职场文书
优秀党员自我评价范文
2014/09/15 职场文书
大学生干部培训心得体会
2016/01/06 职场文书
Vue的过滤器你真了解吗
2022/02/24 Vue.js