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 相关文章推荐
jquery获取URL中参数解决中文乱码问题的两种方法
Dec 18 Javascript
JS三级可折叠菜单实现方法
Feb 29 Javascript
浅谈JavaScript前端开发的MVC结构与MVVM结构
Jun 03 Javascript
使用do...while的方法输入一个月中所有的周日(实例代码)
Jul 22 Javascript
原生js仿浏览器滚动条效果
Mar 02 Javascript
js模仿微信朋友圈计算时间显示几天/几小时/几分钟/几秒之前
Apr 27 Javascript
JS获取短信验证码倒计时的实现代码
May 22 Javascript
jQuery完成表单验证的实例代码(纯代码)
Sep 30 jQuery
React 路由懒加载的几种实现方案
Oct 23 Javascript
解决layer.msg 不居中 ifram中的问题
Sep 05 Javascript
利用js实现简易红绿灯
Oct 15 Javascript
微信小程序实现下拉加载更多商品
Dec 29 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 addslashes及其他清除空格的方法是不安全的
2012/01/25 PHP
基于xcache的配置与使用详解
2013/06/18 PHP
php的慢速日志引起的Mysql错误问题分析
2014/05/13 PHP
php计算指定目录下文件占用空间的方法
2015/03/13 PHP
JavaScript高级程序设计(第3版)学习笔记12 js正则表达式
2012/10/11 Javascript
如何使用jQuery来处理图片坏链具体实现步骤
2013/05/02 Javascript
jquery datatable后台封装数据示例代码
2014/08/07 Javascript
javascript中解析四则运算表达式的算法和示例
2014/08/11 Javascript
jquery.map()方法的使用详解
2015/07/09 Javascript
javascript实现图片延迟加载方法汇总(三种方法)
2015/08/27 Javascript
解决ajax不能访问本地文件问题(利用js跨域原理)
2017/01/24 Javascript
基于jQuery解决ios10以上版本缩放问题
2017/11/03 jQuery
快速了解vue-cli 3.0 新特性
2018/02/28 Javascript
vue2中使用less简易教程
2018/03/27 Javascript
JS使用Dijkstra算法求解最短路径
2019/01/17 Javascript
vue实现日历备忘录功能
2020/09/24 Javascript
微信小程序实现二维码签到考勤系统
2020/01/16 Javascript
jQuery+Ajax+js实现请求json格式数据并渲染到html页面操作示例
2020/06/02 jQuery
jquery实现广告上下滚动效果
2021/03/04 jQuery
[16:56]heroes英雄教学 司夜刺客
2014/09/18 DOTA
用python生成1000个txt文件的方法
2018/10/25 Python
Python 使用 Pillow 模块给图片添加文字水印的方法
2019/08/30 Python
Python笔试面试题小结
2019/09/07 Python
Python 正则表达式爬虫使用案例解析
2019/09/23 Python
python 动态调用函数实例解析
2019/10/21 Python
tensorflow对图像进行拼接的例子
2020/02/05 Python
解决TensorFlow模型恢复报错的问题
2020/02/06 Python
python绘制动态曲线教程
2020/02/24 Python
Python中有几个关键字
2020/06/04 Python
CSS3实例分享--超炫checkbox复选框和radio单选框
2014/09/01 HTML / CSS
Made in Design意大利:现代家具、名家灯具和装饰
2020/10/27 全球购物
新大陆软件面试题
2016/11/24 面试题
机关节能减排实施方案
2014/03/17 职场文书
教师廉洁自律承诺书
2014/05/26 职场文书
关于诚信的活动方案
2014/08/18 职场文书
营运督导岗位职责
2015/04/10 职场文书