Pixiv - KiraraShss
733 字
4 分钟
模块的导入导出方式总结
欢迎来到我的博客!
使用 Markdown 格式编写。
今天学到了什么
- 模块的导入导出方式总结
- :的作用
模块的导入导出方式总结
/* ================================================================ 模式 1:默认导出 与 默认导入 (最常用,例如:Vue组件) ================================================================ */
// 📄 src/components/App.js (导出方)const myComponent = { template: '<div>Hello</div>' }// 每个文件只能有一个 export defaultexport default myComponent
// 📄 src/main.js (导入方)// ① 不带 {}// ② 名字可以随便起 (比如起名叫 App)import App from './components/App.js'
/* ================================================================ 模式 2:按需导出 与 按需导入 (最常用,例如:常量、工具函数) ================================================================ */
// 📄 src/utils/math.js (导出方)// 可以有多个 exportexport const PI = 3.14export 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'是个字符串,就会传过去字符串。
赞助支持
如果这篇文章对你有帮助,欢迎赞助支持!
最后更新于 2026-03-27,距今已过 158 天
部分内容可能已过时