import { createApp } from "vue";
import App from "./App.vue";
import router from "./router";
import store from "./store";
import ElementPlus from "element-plus";
import "element-plus/dist/index.css";
import * as ElementPlusIconsVue from "@element-plus/icons-vue";
import zhCn from "element-plus/dist/locale/zh-cn.mjs";
const app = createApp(App);
// 注册所有图标
for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
app.component(key, component);
}
app.use(store);
app.use(router);
app.use(ElementPlus, {
locale: zhCn,
});
app.mount("#app");
这是一个 Vue 3 应用的主入口文件,我来详细分析每个部分:
1. 导入依赖模块
import { createApp } from "vue";
- 从 Vue 3 导入
createApp
函数,这是 Vue 3 创建应用实例的新方式 - 相比 Vue 2 的
new Vue()
,Vue 3 使用函数式创建方式
import App from "./App.vue";
import router from "./router";
import store from "./store";
App.vue
:根组件,整个应用的入口组件router
:Vue Router 路由配置,用于单页面应用的路由管理store
:Vuex 或 Pinia 状态管理器,用于全局状态管理
import ElementPlus from "element-plus";
import "element-plus/dist/index.css";
import * as ElementPlusIconsVue from "@element-plus/icons-vue";
import zhCn from "element-plus/dist/locale/zh-cn.mjs";
ElementPlus
:饿了么团队开发的 Vue 3 UI 组件库- CSS 样式文件:ElementPlus 的样式表
- 图标库:ElementPlus 配套的图标组件集合
- 中文语言包:将 ElementPlus 界面设置为中文
2. 创建应用实例
const app = createApp(App);
- 使用
createApp()
创建 Vue 应用实例 - 传入根组件
App
作为参数
3. 批量注册图标组件
for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
app.component(key, component);
}
- 遍历 ElementPlus 图标库中的所有图标
- 将每个图标作为全局组件注册到应用中
- 注册后可以在任何组件中直接使用这些图标,如
<Edit />
,<Delete />
等
4. 注册插件和中间件
app.use(store);
app.use(router);
app.use(ElementPlus, {
locale: zhCn,
});
app.use(store)
:注册状态管理器app.use(router)
:注册路由系统app.use(ElementPlus, { locale: zhCn })
:注册 ElementPlus UI 库并配置为中文语言
5. 挂载应用
app.mount("#app");
- 将 Vue 应用挂载到 HTML 中 id 为 “app” 的 DOM 元素上
- 通常对应
index.html
中的<div id="app"></div>
- 组件化开发:使用
.vue
单文件组件 - 路由管理:集成 Vue Router 进行页面导航
- 状态管理:使用 Vuex/Pinia 管理全局状态
- UI 框架:采用 ElementPlus 提供丰富的 UI 组件
- 国际化:配置中文语言包
- 图标系统:全局注册图标组件库