Vue3 入门教程
创建第一个 Vue 应用
本教程共 40 篇 · 第 2 篇 · 更新于 2026-07-29 · 约 5 分钟阅读
VueVue3 入门教程createAppmount根组件项目结构
2. 创建第一个 Vue 应用
本节目标:学会用 createApp() 创建应用、用 mount() 挂载,理解应用实例和根组件的关系。
应用实例
每个 Vue 应用都从创建一个应用实例开始:
import { createApp } from 'vue'
const app = createApp({
/* 根组件选项 */
})
createApp 接收一个”根组件”作为参数。这个组件是所有其他组件的老大,整个组件树都挂在它下面。
根组件
用单文件组件时,通常从外部文件导入根组件:
import { createApp } from 'vue'
import App from './App.vue'
const app = createApp(App)
大多数真实应用会组织成一棵组件树,例如:
App (根组件)
├─ TodoList
│ └─ TodoItem
└─ TodoFooter
组件树的详细结构和设计方法将在第 11 章”组件基础”中深入讲解。
挂载应用
创建完应用实例后,必须调用 .mount() 才会渲染任何东西:
<div id="app"></div>
app.mount('#app')
.mount() 接收一个 DOM 元素或选择器字符串。根组件的内容会被渲染到这个容器里,容器本身不属于应用。
Important
.mount()必须在所有应用配置和资产注册完成之后调用。
内联模板
根组件的模板也可以直接写在挂载容器里:
<div id="app">
<button @click="count++">{{ count }}</button>
</div>
import { createApp } from 'vue'
const app = createApp({
data() {
return { count: 0 }
}
})
app.mount('#app')
如果根组件没有 template 选项,Vue 会自动用容器的 innerHTML 作为模板。这种方式常用于没有构建步骤的场景。
应用配置
应用实例暴露了 .config 对象,可以配置一些应用级选项:
// 全局错误处理
app.config.errorHandler = (err) => {
console.error('出错了:', err)
}
还可以注册全局组件,让整个应用都能用:
app.component('TodoDeleteButton', TodoDeleteButton)
Note所有配置必须在
mount()之前完成!
多应用实例
同一个页面可以有多个 Vue 应用,各自独立:
const app1 = createApp({ /* ... */ })
app1.mount('#container-1')
const app2 = createApp({ /* ... */ })
app2.mount('#container-2')
如果只需要在页面局部用 Vue 控制某些区域,不要挂一个应用到整个页面。创建多个小实例,各自负责自己的区域。
项目结构
脚手架生成的项目大致长这样:
my-project/
├── index.html # 入口 HTML
├── package.json # 依赖配置
├── public/ # 静态资源
├── src/
│ ├── App.vue # 根组件
│ ├── main.js # 应用入口
│ ├── components/ # 组件目录
│ └── assets/ # 图片、样式等
└── vite.config.js # Vite 配置
main.js 是入口文件,负责创建应用并挂载:
import { createApp } from 'vue'
import App from './App.vue'
createApp(App).mount('#app')
本节回顾
createApp()创建应用实例,接收根组件mount('#app')挂载应用,必须在配置完成后调用- 应用实例可以配置全局错误处理、注册全局组件
- 同一页面可以有多个独立应用
- 脚手架项目以
main.js为入口,App.vue为根组件