现在位置: 首页 > Vue3 教程 > 正文

Vue3 createApp() 函数


Vue3 全局 API Vue3 全局 API

在 Vue3 中,createApp() 是一个全局函数,用于创建一个新的 Vue 应用实例。

createApp() 是 Vue 应用的起点,所有组件、插件、路由等都需要通过这个实例进行注册和配置。

通过 createApp(),你可以轻松地创建、配置和管理 Vue 应用,并将其挂载到页面的 DOM 元素上。

与 Vue2 中的 new Vue() 不同,Vue3 引入了 createApp() 来创建应用实例,这使得 Vue 的 API 更加模块化和灵活。

函数语法格式如下:

function createApp(rootComponent: Component, rootProps?: object): App

第一个参数是根组件。第二个参数可选,它是要传递给根组件的 props。


createApp() 的基本用法

要使用 createApp(),首先需要从 Vue 库中导入它。以下是一个简单的示例:

实例

// 从 Vue 库中导入 createApp 函数
import { createApp } from 'vue';

// 创建一个根组件
const App = {
  template: `<h1>Hello, Vue3!</h1>`
};

// 使用 createApp 创建应用实例,并挂载到 DOM 元素上
const app = createApp(App);
app.mount('#app');

在这个示例中,我们首先从 vue 库中导入了 createApp 函数。然后,我们定义了一个简单的根组件 App,它只是在页面上显示一个标题。接下来,我们使用 createApp(App) 创建了一个 Vue 应用实例,并将其挂载到页面中 ID 为 app 的 DOM 元素上。


createApp() 的返回值

createApp() 函数返回一个应用实例对象,该对象提供了许多方法和属性,用于配置和管理 Vue 应用。

例如,你可以使用 .mount() 方法将应用挂载到一个 DOM 元素上,或者使用 .use() 方法安装插件:

实例

const app = createApp(App);

// 安装 Vue 路由插件
app.use(router);

// 挂载应用
app.mount('#app');

为什么使用 createApp()

createApp() 在 Vue3 中取代了 Vue2 中的 new Vue(),主要有以下几个原因:

  • 模块化设计createApp() 使得 Vue 的 API 更加模块化,允许开发者按需导入和使用不同的功能。
  • 更好的隔离性:每个应用实例都是独立的,避免了多个应用之间的全局污染。
  • 更灵活的配置createApp() 返回的应用实例对象提供了更多的方法和选项,使得配置和管理应用更加灵活。

实际项目中的应用

在实际项目中,createApp() 通常用于创建应用的主实例,并注册全局组件、插件、路由等。

以下是一个更复杂的示例:

实例

import { createApp } from 'vue';
import App from './App.vue';
import router from './router';
import store from './store';

const app = createApp(App);

// 使用路由
app.use(router);

// 使用状态管理
app.use(store);

// 注册全局组件
app.component('MyComponent', MyComponent);

// 挂载应用
app.mount('#app');

在这个示例中,我们创建了一个 Vue 应用实例,并依次安装了路由插件、状态管理插件,并注册了一个全局组件。最后,我们将应用挂载到页面的 #app 元素上。


Vue3 全局 API Vue3 全局 API