export default 和 export之间的区别

这篇具有很好参考价值的文章主要介绍了export default 和 export之间的区别。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

export default 和 export之间的区别

🎈 export default 和 export 有什么区别:

export 、export default,都属于ES6里面的语法

1. export与export default均可用于导出常量、函数、文件、模块等

2. 你可以在其它文件或模块中通过import+(常量 | 函数 | 文件 | 模块)名的方式,将其导入,以便能够对其进行使用

3. 在一个文件或模块中,export、import可以有多个,export default仅有一个

export default 用于规定模块的默认对外接口,只能有一个,所以 export default 在同一个模块中只能出现一次。

4. 通过export方式导出,在导入时要加{ },export default则不需要,因为它本身只能有一个

export default的import方式之所以不需要使用大括号包裹。因为对于export default 其输出的本来就只有一个接口,提供的是模块的默认接口,自然不需要使用大括号包裹。

5、 export 可以直接导出或者先定义后导出都可以,export default只能先定义后导出

👉 export

export 可以直接导出或者先定义后导出都可以。

示例:直接导出

export let i = “hello”;

export function myFun(){ };

示例:先定义后导出

let i = “hello";

function myFun(){ };

export { i , myFun }   // 必须加花括号{ }

👉 export default

export default是模块的默认对外接口,只有一个,所以只能出现一次。

export default只能先定义后导出

示例:先定义后导出

function myFun(){ };

export default myFun  // 不要加花括号{ }

👉 示例:export 导出方式

// export导出方式
// one.js
// 1、export可以有多个
// 2、可以各自分开导出也可以同时导出多个;
// 3、export可以直接导出或者先定义后导出

//😀 直接导出
export const str = "blablabla~";
export function log(sth) { 
  return sth;
}
export function cale(a,b){
  return a+b
}

//😀 先定义后导出
// const str = "blablabla~";
// function log(sth) { 
//   return sth;
// }
// function cale(a,b){
//   return a+b
// }
// export {str}
// export {calc}
// export {log}
// export {str, log, cale}

// 对应的导入方式:
// two.js
// 1、引入时需要加花括号{ };
// 2、可以各自分开引入也可以同时引入多个;
// 3、引入的变量不能自定义名字
import { str, log, cale } from './one.js';  // 完整的路径
console.log(str); // blablabla~
console.log(calc(10,15)); // 25
console.log(calc); // [Function: calc]

 👉 示例:export default 导出方式

// export default导出方式
// one.js
// 1、export default 只能导出一个
// 2、export只能先定义后导出

//😀 只能先定义后导出
const str = "blablabla~";
export default str

// 对应的导入方式:
// two.js
// 1、引入时不需要加花括号{ };
// 2、引入的变量可以自定义名字
import str from './one.js'; // 完整的路径
console.log(str); // blablabla~

我在vscode运行以上js代码时出现了报错:

export default 和 export之间的区别
(node:18336) Warning: To load an ES module, set "type": "module" in the package.json or use the .mjs extension. 
警告:加载ES模块时,在package.json包中设置“ type”:“ module”或使用.mjs扩展名。


🎈  经过一番折腾,找到了解决方案:
解决方法:
1、安装新版node.js
2、使用npm init -y初始化项目,生成一个pakeage.json文件
3、在pakeage.json文件中添加"type": "module"

export default 和 export之间的区别

 
✔️ 最后的结果:

export default 和 export之间的区别

同类型报错问题,都可采取这种解决方案

报错:Warning: To load an ES module, set “type“: “module“ in the package.json or use the .mj

🔽 使用export default命令,为模块指定默认输出,这样就不需要知道所要加载模块的变量名

//a.js
let sex = "boy";
// 编译成 CommonJS: exports.default = sex (ES 编译成的 CommonJS 形式)
export default sex // sex不能加大括号

注意:原本直接export sex外部是无法识别的,加上default(或者export {sex})就可以了。但是一个文件内最多只能有一个export  default。其实此处相当于为sex变量值"boy"起了一个系统默认的变量名default,自然default只能有一个值,所以一个文件内不能有多个export default。

// b.js
import any from "./a.js"; // 编译成 CommonJS: require('./a.js').default
import any12 from "./a.js"; // 编译成 CommonJS: require('./a.js').default
console.log(any,any12)   // boy  boy

注意:本质上,a.js文件的export default输出一个叫做default的变量,然后系统允许你为它取任意名字。所以,可以为import的模块起任何变量名,且不需要用大括号包含 。

扩展:export default 和 export都是 ES6 中的写法,其用法如下:

// 导出
export default a // 编译成 CommonJS: exports.default = a (ES 编译成的 CommonJS 形式)

// 引人
import a from './xxx' // 编译成 CommonJS: require('./xxx').default

// 导出
export { a } // 编译成 CommonJS: exports.a = a

// 引人
import { a } from './xxx' // 编译成 CommonJS: require('./xxx').a 

🎈 总结:

export default 和 export 的主要区别在于对应的import的区别:

export 对应的 import 需要知道 export 抛出的变量名或函数名,因为export 抛出的变量名或函数名导入时,不能自定义名字 ——import{a,b}

export default对应的 import 不需要知道 export抛出的变量名或函数名,因为export 抛出的变量名或函数名导入时,可以自定义名字,也就是说可以使用任意的变量名 ——import anyname。

通过两者导出的对象,导入时也存在写法上的差别。

1、export导出的对象,导入时写法:

import {i, myFun} from ‘模块’

2、export default导出的对象,导入时写法:

import 变量名 from ‘模块’

很明显,模块只有一个默认的导出的接口,所以只有一个对象被导出,导出的对象可以自定义一个变量名。

参考资料

module.exports与exports,export和export default联系与区别

混淆系列_module.exports、exports、export有什么区别?

一文解读exports、module.exports 和 export、export default

export default 和 export之间的区别文章来源地址https://www.toymoban.com/news/detail-406358.html

到了这里,关于export default 和 export之间的区别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • export和export default和import的说明

    目录 1.说明 2.export 3.import 4.export default 5.总结 1.说明 ES6中,export与export default均可用于导出常量、函数、文件、模块等。 import用于导入其他被导出的常量、函数、文件、模块等。 2.export 一个独立的文件,该文件内部的变量,方法等,外部无法获取。如果想读取其他vue文件中的

    2024年02月05日
    浏览(41)
  • export default的作用

    export default 是 JavaScript 的一个语法,用于导出模块的默认成员。 在 JavaScript 中,模块是一种封装了特定功能的代码的单元。通过使用 import 和 export ,你可以将模块中的代码导出到其他文件中使用。 例如,假设你有一个名为 myModule.js 的模块,其中包含一个函数和一个变

    2024年02月07日
    浏览(29)
  • vue封装公共方法(export default install)—2

    定义一validate.js文件内容如下:   xxx.vue文件使用方法: 重点::①、标签传入校验规则;②、this.$valid.rules在规则定义里面调用具体的规则

    2024年02月13日
    浏览(29)
  • 为什么 export 导出一个字面量会报错而使用 export default 不会报错

    其实总的来说就是 export 导出的是变量的句柄(或者说符号绑定、近似于 C 语言里面的指针,C++里面的变量别名),而 export default 导出的是变量的值。 需要注意的是:模块里面的内容只能在模块内部修改,模块外部只能使用。esModule在语法层面做了一层浅层的保护(即将imp

    2024年02月04日
    浏览(46)
  • 记录--为什么 export 导出一个字面量会报错,而使用 export default 就不会报错?

    其实总的来说就是 export 导出的是变量的句柄(或者说符号绑定、近似于 C 语言里面的指针,C++里面的变量别名),而 export default 导出的是变量的值。 需要注意的是:模块里面的内容只能在模块内部修改,模块外部只能使用。esModule在语法层面做了一层 浅层 的保护(即将i

    2024年01月17日
    浏览(32)
  • vite 报错 does not provide an export named ‘default‘

    vite 3.2.3 项目依赖B B依赖A 运行时引用A报错 The requested module ‘/node_modules/A/lib/index.js?v=8bb229e7’ does not provide an export named ‘default’ 依赖A不是ES模块 vite.config.ts添加配置

    2024年02月11日
    浏览(38)
  • 解决export ‘default‘ (imported as ‘xxx‘) was not found in ‘xxx‘

    今天写代码时出现了问题,记录一下,源代码如下 编译时警告 试了很久最后发现是import语法问题  

    2024年02月04日
    浏览(37)
  • 解决vite打包出现 “default“ is not exported by “node_modules/...问题

    vue3+ts+vite项目打包 报错意思是导入的js文件没有默认导出 有两种方法 1.修改node_modoules下的文件源码 在前面加上expoert default 为这个js文件添加一个默认导出 不太推荐这个方法,虽然比较简单 2.安装 @rollup/plugin-commonjs 插件, vite-plugin-require-transform 插件 @rollup/plugin-commonjs可以将

    2024年02月10日
    浏览(36)
  • 打包报错Error: ‘default‘ is not exported by node_modules/qs/lib/index.js

    问题描述: 当我们在使用rollup编译es6时,可能会遇到以下报错问题 解决方案: 安装@rollup/plugin-commonjs插件   最后,修改rollup.config.js文件中写入以下代码即可

    2024年02月16日
    浏览(37)
  • 引入echars5.0报错“export ‘default‘ (imported as ‘echarts‘) was not found in ‘echarts‘解决方案

    前言:老版本的echars样式与新版本的组件美观度相差巨大,以美观为主所以把组件升级成了echars5.0,结果报错了【\\\"export ‘default’ (imported as ‘echarts’) was not found in ‘echarts’】! 直接报错:\\\"export ‘default’ (imported as ‘echarts’) was not found in \\\'echarts’ 新版本的echarts引入方式

    2024年02月03日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包