Javascript(es2016) import和require用法和区别详解


Posted in Javascript onAugust 11, 2017

本文介绍了Javascript(es2016) import和require用法和区别详解,分享给大家,具体如下:

写个简单js文件,假设名字为:lib.js 。 假设内容如下:

export const sqrt = Math.sqrt;
export function square(x) {
 return x * x;
}
export function diag(x, y) {
 return sqrt(square(x) + square(y));
}

这样就可以在其他地方对lib中定义的属性和方法进行引用,引用方法有两种,也就时import和require。

//方法一
import { square, diag } from 'lib';
console.log(square(11)); // 121
console.log(diag(4, 3));
//方法儿
import * as lib from 'lib';
square = lib.square;

还可以设置默认的导出信息,就需要崽lib.js中定义 export default {}。default后面可以接一个参数,也可以接一个数组。书写方法为:

//------ module1.js ------
export default 123;

//------ module2.js ------
const D = 123;
export { D as default };

通常比较习惯用第一种。然后用import就可以得到这个数组或则参数。但是import只能用于静态导入,就是必须在文件开始的时候,在最上层就写好。而require就可以实现动态加载。

加载方式 规范 命令 特点
运行时加载 CommonJS/AMD require 社区方案,提供了服务器/浏览器的模块加载方案。非语言层面的标准。只能在运行时确定模块的依赖关系及输入/输出的变量,无法进行静态优化。
编译时加载 ESMAScript6+ import 语言规格层面支持模块功能。支持编译时静态分析,便于JS引入宏和类型检验。动态绑定。
const incrementCounter = function ({dispatch,state}){
 dispatch(‘INCREMENT‘)
}
export default {
 incrementCounter
}
//require
let myAction = require(‘xxxxx‘);
myAction.default.incrementCounter()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Javascript模块化编程(三)require.js的用法及功能介绍
Jan 17 Javascript
javascript加号"+"的二义性说明
Mar 04 Javascript
js获得指定控件输入光标的坐标兼容IE,Chrome,火狐等多种主流浏览器
May 21 Javascript
浅析JavaScript原型继承的陷阱
Dec 03 Javascript
jquery教程ajax请求json数据示例
Jan 13 Javascript
Js保留小数点的4种效果实现代码分享
Apr 12 Javascript
jquery判断浏览器后退时候弹出消息的方法
Aug 11 Javascript
实例讲解jquery与json的结合
Jan 07 Javascript
基于Bootstrap重置输入框内容按钮插件
May 12 Javascript
JS控制鼠标拒绝点击某一按钮的实例
Dec 29 Javascript
微信小程序上传多图到服务器并获取返回的路径
May 05 Javascript
JointJS JavaScript流程图绘制框架解析
Aug 15 Javascript
详解Node中导入模块require和import的区别
Aug 11 #Javascript
vue实现单选和多选功能
Aug 11 #Javascript
js微信应用场景之微信音乐相册案例分享
Aug 11 #Javascript
Angular模板表单校验方法详解
Aug 11 #Javascript
AngularJs导出数据到Excel的示例代码
Aug 11 #Javascript
Vue 表单控件绑定的实现示例
Aug 11 #Javascript
Angular4实现动态添加删除表单输入框功能
Aug 11 #Javascript
You might like
基于mysql的bbs设计(三)
2006/10/09 PHP
global.php
2006/12/09 PHP
destoon二次开发模板及调用语法汇总
2014/06/21 PHP
浅谈php正则表达式中的非贪婪模式匹配的使用
2014/11/25 PHP
php利用imagemagick实现复古老照片效果实例
2017/02/16 PHP
编写跨浏览器的javascript代码必备[js多浏览器兼容写法]
2008/10/29 Javascript
7个Javascript地图脚本整理
2009/10/20 Javascript
js读取cookie方法总结
2014/10/31 Javascript
使用js获取图片原始尺寸
2014/12/03 Javascript
详解JavaScript中setSeconds()方法的使用
2015/06/11 Javascript
jQuery实现仿百度帖吧头部固定导航效果
2015/08/07 Javascript
浅谈sass在vue注意的地方
2017/08/10 Javascript
javascript原生封装一个淡入淡出效果的函数测试实例代码
2018/03/19 Javascript
vue-for循环嵌套操作示例
2019/01/28 Javascript
[03:28]2014DOTA2国际邀请赛 EG战队官方纪录片
2014/07/21 DOTA
[41:56]Spirit vs Liquid Supermajor小组赛A组 BO3 第一场 6.2
2018/06/03 DOTA
python实现跨文件全局变量的方法
2014/07/07 Python
python使用socket向客户端发送数据的方法
2015/04/29 Python
详解Python3操作Mongodb简明易懂教程
2017/05/25 Python
Django框架实现的普通登录案例【使用POST方法】
2019/05/15 Python
Python序列化pickle模块使用详解
2020/03/05 Python
为什么说python适合写爬虫
2020/06/11 Python
详解HTML5如何使用可选样式表为网站或应用添加黑暗模式
2020/04/07 HTML / CSS
林清轩官方网站:山茶花润肤油开创者
2016/10/26 全球购物
Halston Heritage官网:简洁的日装,稍显奢华的晚装
2018/11/20 全球购物
军训学生自我鉴定
2014/02/12 职场文书
领导失职检讨书
2014/02/24 职场文书
工会2014法制宣传日活动总结
2014/11/01 职场文书
优秀班主任申报材料
2014/12/16 职场文书
新郎婚礼答谢词
2015/01/04 职场文书
2015年教师节慰问信
2015/03/23 职场文书
捐款仪式主持词
2015/07/04 职场文书
解决thinkphp6(tp6)在状态码500下不报错,或者显示错误“Malformed UTF-8 characters”的问题
2021/04/01 PHP
mongodb数据库迁移变更的解决方案
2021/09/04 MongoDB
Java Spring 控制反转(IOC)容器详解
2021/10/05 Java/Android
使用CSS实现小三角边框原理解析
2021/11/07 HTML / CSS