你可以说出export export default || model.exports exports 的区别吗(一)
一.前言:
用模块写代码,为什么要用模块来写代码:ES6之前,在js中定义的一切,都是共享一个全局作用域的,随着web应用变得复杂,这样做会引起如:命名冲突和安全问题、于是引入了模块。
二.清楚一个概念:
- export 和 export default 是ES6 里面的API(本文只介绍ES6的)
- exports 和 model..exports 是node.js里面的API,更切确的说是Common.js里的(就和require 和 import 相似)
三.export
// a.js
export let a = 1 //输出变量
export fn(){...} //输出函数
export class Class{
constructor(a,b){
this.a = a;
this.b = b;
}
} //输出类
fn2(){...} //定义一个函数
export fn2; //建议以这种在末尾统一输出的方式export
export {fn2 ,fn}; //导出多个变量,要有{}
export {fn2 as asFn2}; //导出时重命名,要有{}
// b.js
import {fn2} from 'a.js'; //export 的引入要加{},单个也要加;
import {fn2 , a , Class as Class1} from 'a.js' //引入多个要用 ‘,’隔开;
import * as example from 'a.js'; //引入整个模块
example.a = 1; //使用模块,在有很多需要引入时,建议这种方法;
四.export defalut(模块的默认值)
// a.js
export default function(num1,num2){...} //导出默认值,只能导出一个
export let a = 1; //导出变量a
// b.js
import any from 'a.js'; //引入默认值,any 可以是任意的名字,不用{}
import {a} from 'a.js'; //引入a ;
import any,{a} from 'a.js' //默认值必须放在非默认值前面
import {default as any , a} from 'a.js' //有重命名就要大括号包起来
总结:
export :
- 单个不用括号,多个要用{},as也要用{}; (因为export default 只能export 一个);
import
- 除了* as ,别的重命名都要用{}
- export 要用{}
- 既有export 和 export default时:import any,{a} from 'a.js’ 默认写前面
by:Beast 原创:转载请声明
觉得对你有用,请点赞!欢迎探讨指点!
你可以说出export export default || model.exports exports 的区别吗(一)的更多相关文章
- module.exports,exports,export和export default,import与require区别与联系【原创】
还在为module.exports.exports.export和export default,import和require区别与联系发愁吗,这一篇基本就够了! 一.首先搞清楚一个基本问题: modu ...
- module.exports,exports,export和export default,import与require区别与联系
还在为module.exports.exports.export和export default,import和require区别与联系发愁吗,这一篇基本就够了! 一.首先搞清楚一个基本问题: modu ...
- exports module.exports export export default之间的关系
exports 和module.exports是CommonJS模块规范 export export default是ES6模块的规范,两者完全是不同的概念. node应用由模块组成,采用的是Comm ...
- ES6的export与Nodejs的module.exports
原文:https://www.cnblogs.com/lxg0/p/7774094.html module.exports与exports,export与export default之间的关系和区别 ...
- export export defalut
require/exports 和 import/export 形式不一样 require/exports 的用法只有以下三种简单的写法: const fs = require('fs') expor ...
- node.js module.exports & exports & module.export all in one
node.js module.exports & exports & module.export all in one cjs const log = console.log; log ...
- Sqoop导入数据到mysql数据库报错:ERROR tool.ExportTool: Error during export: Export job failed!(已解决)
问题描述: Container killed by the ApplicationMaster. Container killed on request. Exit code is 143 Conta ...
- vue使用填坑之:model和v-model的区别
v-model通常用于input的双向数据绑定 <input v-model="parentMsg">,也可以实现子组件到父组件数据的双向数据绑定:首先说说v-mode ...
- ES6中export , export default , import模块系统总结
最近在学习使用Webpack3的时候发现,它已经可以在不使用babel的情况下使用ES6的模块加载功能了. 说到ES6的模块加载功能,我们先复习一下CommonJS规范吧: 一 . CommonJS ...
随机推荐
- HBase常用shell操作
行(row),列(Column),列蔟(Column Family),列标识符(Column Qualifier)和单元格(Cell) 行:由一个个行键(rowkey)和一个多个列组成.其中rowke ...
- 渗透测试之BurpSuite工具的使用介绍(三)
若希望从更早前了解BurpSuite的介绍,请访问第二篇(渗透测试之BurpSuite工具的使用介绍(二)):https://www.cnblogs.com/zhaoyunxiang/p/160002 ...
- SQL从零到迅速精通【数据库应用】
数据库理论的研究主要集中于关系规范化理论和关系数据理论等.数据库技术与计算机技术的结合使得数据库中新的技术层出不穷.最初的数据库系统主要应用于银行管理.飞机订票等事务处理环境.后来渐渐应用于工程设计与 ...
- .NET6: 开发基于WPF的摩登三维工业软件 (8) - MVVM
基于WPF开发界面的一个很大优势是可以方便地基于MVVM设计模式开发应用.本文从应用的角度基于MVVM实现参数化管材的创建界面. 1 MVVM MVVM是Model-View-ViewModel的简写 ...
- 《前端运维》一、Linux基础--07Shell函数
linux shell 可以用户定义函数,然后在shell脚本中可以随便调用.shell中函数的定义格式如下: [ function ] funname [()] { action; [return ...
- Java案例——字符串拼接
/*案例:将一个int数组中的元素拼接为一个字符串 分析:1.静态定义一个int数组 2.定义方法将数组元素遍历并拼接,返回类型为String 3.定义变量接受方法所拼接出来的字符串 4.输出* */ ...
- Linux下使用Google Authenticator配置SSH登录动态验证码
1.一般ssh登录服务器,只需要输入账号和密码.2.本教程的目的:在账号和密码之间再增加一个验证码,只有输入正确的验证码之后,再输入密码才能登录.这样就增强了ssh登录的安全性.3.账号.验证码.密码 ...
- SQL注入工具sqlmap的使用
sqlmap使用 测试注入点 sqlmap -u "URL" 爆数据库 sqlmap -u "URL" --dbs 查看当前库 sqlmap -u " ...
- (一)【转】asp.net mvc生成验证码
网站添加验证码,主要为防止机器人程序批量注册,或对特定的注册用户用特定程序暴力破解方式,以进行不断的登录.灌水等危害网站的操作.验证码被广泛应用在注册.登录.留言等提交信息到服务器端处理的页面中. ...
- BUAA_DS_北航数据结构:输出全排列
输入一个数 \(n\),输出 \(1\sim n\) 的所有全排列,每个排列占一行,每个字符保留 \(5\) 个场宽.勤奋的同学一定已经开始打表了是吧. 说是能做肯定不是骗大家,那怎么做呢~ 其实回溯 ...