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 相关文章推荐
IE和Firefox在JavaScript应用中的兼容性探讨
Apr 01 Javascript
Jquery升级新版本后选择器的语法问题
Jun 02 Javascript
javascript函数以及基础写法100多条实用整理
Jan 13 Javascript
js纯数字逐一停止显示效果的实现代码
Mar 16 Javascript
Node.js中路径处理模块path详解
Nov 14 Javascript
实例详解display:none与visible:hidden的区别
Mar 30 Javascript
vue进行图片的预加载watch用法实例讲解
Feb 07 Javascript
Angular 5.x 学习笔记之Router(路由)应用
Apr 08 Javascript
Vue中对拿到的数据进行A-Z排序的实例
Sep 25 Javascript
详解Angular5/Angular6项目如何添加热更新(HMR)功能
Oct 10 Javascript
Mint UI实现A-Z字母排序的城市选择列表
Dec 28 Javascript
微信小程序常用简易小函数总结
Feb 01 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
PHP4之COOKIE支持详解
2006/10/09 PHP
PHP中的正规表达式(二)
2006/10/09 PHP
兼容性最强的PHP生成缩略图的函数代码(修改版)
2011/01/18 PHP
jQuery.Validate验证库的使用介绍
2013/04/26 Javascript
jQuery标签替换函数replaceWith()的使用例子
2014/08/28 Javascript
JS实现不规则TAB选项卡效果代码
2015/09/16 Javascript
JS数组操作(数组增加、删除、翻转、转字符串、取索引、截取(切片)slice、剪接splice、数组合并)
2016/05/20 Javascript
Vue.js实现模拟微信朋友圈开发demo
2017/04/20 Javascript
JavaScript中的E-mail 地址格式验证
2018/03/28 Javascript
微信小程序实现自上而下字幕滚动
2018/07/14 Javascript
angular2 NgModel模块的具体使用方法
2019/04/10 Javascript
layer弹窗在键盘按回车将反复刷新的实现方法
2019/09/25 Javascript
深入学习Vue nextTick的用法及原理
2019/10/08 Javascript
vue下canvas裁剪图片实例讲解
2020/04/16 Javascript
vue scroll滚动判断的实现(是否滚动到底部、滚动方向、滚动节流、获取滚动区域dom元素)
2020/06/11 Javascript
js动态生成表格(节点操作)
2021/01/12 Javascript
[13:18]《一刀刀一天》之DOTA全时刻21:详解TI新赛制 A队再露獠牙
2014/06/24 DOTA
python目录与文件名操作例子
2016/08/28 Python
python发送邮件实例分享
2017/07/28 Python
flask框架使用orm连接数据库的方法示例
2018/07/16 Python
Numpy之reshape()使用详解
2019/12/26 Python
浅谈python之自动化运维(Paramiko)
2020/01/31 Python
Django使用django-simple-captcha做验证码的实现示例
2021/01/07 Python
俄罗斯极限运动网上商店:Board Shop №1
2020/12/18 全球购物
品恩科技软件测试面试题
2014/10/26 面试题
电台编导求职信
2014/05/06 职场文书
学生安全责任书范本
2014/07/24 职场文书
四风问题个人自查剖析材料思想汇报
2014/09/21 职场文书
故意伤害人身损害赔偿协议书
2014/11/19 职场文书
2016自主招生教师推荐信范文
2015/03/23 职场文书
2015年采购部工作总结
2015/04/23 职场文书
2015年依法治校工作总结
2015/07/27 职场文书
新西兰:最新留学学习计划书写作指南
2019/07/15 职场文书
导游词之广东佛山(南风古灶)
2019/09/24 职场文书
python pygame入门教程
2021/06/01 Python
Redis命令处理过程源码解析
2022/02/12 Redis