733 字
4 分钟

模块的导入导出方式总结

欢迎来到我的博客!#

使用 Markdown 格式编写。

今天学到了什么#

  • 模块的导入导出方式总结
  • :的作用

模块的导入导出方式总结#

/* ================================================================
模式 1:默认导出 与 默认导入 (最常用,例如:Vue组件)
================================================================ */
// 📄 src/components/App.js (导出方)
const myComponent = { template: '<div>Hello</div>' }
// 每个文件只能有一个 export default
export default myComponent
// 📄 src/main.js (导入方)
// ① 不带 {}
// ② 名字可以随便起 (比如起名叫 App)
import App from './components/App.js'
/* ================================================================
模式 2:按需导出 与 按需导入 (最常用,例如:常量、工具函数)
================================================================ */
// 📄 src/utils/math.js (导出方)
// 可以有多个 export
export const PI = 3.14
export function add(a, b) { return a + b }
// 📄 src/main.js (导入方)
// ① 必须带 {}
// ② 名字必须和导出的一模一样
import { PI, add } from './utils/math.js'
// ③ 如果重名了,可以用 as 改名
import { PI as myPI } from './utils/math.js'
/* ================================================================
模式 3:按需导出 与 全部导入 (全盘打包,防止命名冲突)
================================================================ */
// 📄 src/api/user.js (导出方)
export const login = () => { /*...*/ }
export const logout = () => { /*...*/ }
export const getInfo = () => { /*...*/ }
// 📄 src/main.js (导入方)
// ① 用 * 号拿到所有 export 导出的东西
// ② 打包塞进 userApi 这个对象里
import * as userApi from './api/user.js'
userApi.login()
userApi.logout()
/* ================================================================
模式 4:混合导出 与 混合导入 (主角 + 配角)
================================================================ */
// 📄 src/core/vue.js (导出方)
export default class Vue { /* 核心对象:默认导出 */ }
export function nextTick() { /* 辅助工具:按需导出 */ }
export function reactive() { /* 辅助工具:按需导出 */ }
// 📄 src/main.js (导入方)
// ① 默认导入放在最前面 (Vue)
// ② 逗号隔开
// ③ 按需导入放在 {} 里 ({ nextTick, reactive })
import Vue, { nextTick, reactive } from './core/vue.js'

:的作用#

这是一个 Vue 中非常经典且重要的问题!

核心原因在于:加了冒号之后,引号里面的内容就被 Vue 当作 JavaScript 代码(表达式)来执行了。

具体区别如下:

1. 不加冒号:age="18"

  • 这是原生 HTML 的普通属性写法。
  • 在 HTML 中,所有属性的值默认全都是字符串
  • 所以,传给子组件的就是字符串 "18"

2. 加了冒号::age="18"

  • 冒号是 Vue 指令 v-bind: 的简写形式。
  • 它的作用是告诉 Vue:“请把我等号后面引号 "" 里面的内容,当做 JavaScript 代码去运行,把运行得到的结果传过去。”
  • 在 JavaScript 的世界里,你直接写 18,它就是一个数字(Number 类型)。所以传过去的就是数字 18

举两个例子帮你快速顿悟:

  • 如果你写 :age="10 + 8": Vue 会执行这段 JS 代码,计算出 18,然后把数字 18 传过去。

  • 如果你在加了冒号的情况下,非要传字符串怎么办? 你需要用单引号把它包起来,写成::age="'18'"。这样 Vue 解析里面的 JS 代码时,发现 '18' 是个字符串,就会传过去字符串。

赞助支持

如果这篇文章对你有帮助,欢迎赞助支持!

赞助
模块的导入导出方式总结
https://firefly.cuteleaf.cn/posts/study-everyday/2026-03-27今日学习-导入导出方式总结/
作者
LJC
发布于
2026-03-27
许可协议
CC BY-NC-SA 4.0
最后更新于 2026-03-27,距今已过 158 天

部分内容可能已过时

目录