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匿名函数的一种应用 代码封装
Jun 27 Javascript
输入框的字数时时统计—关于 onpropertychange 和 oninput 使用
Oct 21 Javascript
Bootstrap每天必学之响应式导航、轮播图
Apr 25 Javascript
JS中Json数据的处理和解析JSON数据的方法详解
Jun 29 Javascript
jQuery图片前后对比插件beforeAfter用法示例【附demo源码下载】
Sep 20 Javascript
微信公众号-获取用户信息(网页授权获取)实现步骤
Oct 21 Javascript
Bootstrap基本样式学习笔记之按钮(4)
Dec 07 Javascript
在JS中如何把毫秒转换成规定的日期时间格式实例
May 11 Javascript
three.js中文文档学习之如何本地运行详解
Nov 20 Javascript
浅谈vue项目打包优化策略
Sep 29 Javascript
送你43道JS面试题(收藏)
Jun 17 Javascript
JavaScript 严格模式(use strict)用法实例分析
Mar 04 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经典算法集锦【经典收藏】
2016/09/14 PHP
php获取linux命令结果的实例
2017/03/13 PHP
ajax上传时参数提交不更新等相关问题
2012/12/11 Javascript
原生JS操作网页给p元素添加onclick事件及表格隔行变色
2013/12/01 Javascript
jquery默认校验规则整理
2014/03/24 Javascript
Javascript学习笔记之数组的遍历和 length 属性
2014/11/23 Javascript
AngularJS内置指令
2015/02/04 Javascript
JavaScript中常见的字符串操作函数及用法汇总
2015/05/04 Javascript
jQuery实现仿新浪微博浮动的消息提示框(可智能定位)
2015/10/10 Javascript
基于JavaScript实现本地图片预览
2017/02/08 Javascript
Iscrool下拉刷新功能实现方法(推荐)
2017/06/26 Javascript
web前端vue filter 过滤器
2018/01/12 Javascript
webpack4 SCSS提取和懒加载的示例
2018/09/03 Javascript
解决Vue中引入swiper,在数据渲染的时候,发生不滑动的问题
2018/09/27 Javascript
详解适配器在JavaScript中的体现
2018/09/28 Javascript
详解vue中使用protobuf踩坑记
2019/05/07 Javascript
layui监听下拉选框选中值变化的方法(包含监听普通下拉选框)
2019/09/24 Javascript
解决小程序无法触发SESSION问题
2020/02/03 Javascript
解决Antd 里面的select 选择框联动触发的问题
2020/10/24 Javascript
python处理文本文件实现生成指定格式文件的方法
2014/07/31 Python
用Python创建声明性迷你语言的教程
2015/04/13 Python
Python实现在某个数组中查找一个值的算法示例
2018/06/27 Python
基于Python解密仿射密码
2019/10/21 Python
Python List列表对象内置方法实例详解
2019/10/22 Python
python实现最速下降法
2020/03/24 Python
Python爬取YY评级分数并保存数据实现过程解析
2020/06/01 Python
美国一家主营日韩美妆护肤品的在线商店:iMomoko
2016/09/11 全球购物
Expedia爱尔兰:酒店、机票、租车及廉价假期
2017/01/02 全球购物
我的网上商城创业计划书
2013/12/26 职场文书
活动宣传策划方案
2014/05/23 职场文书
教师三严三实心得体会
2014/10/11 职场文书
2014小学教师个人工作总结
2014/11/10 职场文书
校长师德表现自我评价
2015/03/04 职场文书
2015年材料员工作总结
2015/04/30 职场文书
详解JS WebSocket断开原因和心跳机制
2021/05/07 Javascript
python中pd.cut()与pd.qcut()的对比及示例
2022/06/16 Python