使用Vue.createApp创建Vue应用的步骤和注意事项

1.前言

在Vue 3.x中,Vue.createApp已经被用来创建Vue应用,这是与Vue 2.x创建Vue应用的方式有所不同的。本文将介绍Vue.createApp创建Vue应用的步骤和注意事项。

2.创建Vue应用步骤

2.1 安装Vue3.x

在使用Vue.createApp之前,确保你已经安装了Vue 3.x。你可以使用npm、yarn等工具来安装。

npm install vue@next

2.2 引入Vue和创建Vue应用

在创建Vue应用之前,需要从Vue中引入createApp函数,这个函数是创建Vue应用的入口。

import { createApp } from 'vue'

接着,使用createApp函数来创建Vue应用,并将其挂载到页面元素上。

const app = createApp({})

app.mount('#app')

在createApp函数中,我们可以传递一个包含多个选项的对象来定制化我们的Vue应用。通常情况下,这个对象的根属性包含一个视图组件,其余的属性包含不同的选项。

2.3 添加组件

Vue应用中最重要的元素就是组件,而在使用Vue.createApp创建Vue应用时,添加组件相当容易。

const app = createApp({

components: {

HelloWorld: {

template: '<div>HelloWorld</div>'

}

}

})

首先,我们通过components属性定义一个视图组件,这个组件叫做HelloWorld,它的模板是一个简单的div。

2.4 挂载组件到DOM

我们可以将组件添加到Vue应用中,仅仅添加组件是不够的,还需要将组件显示在页面上。

const app = createApp({

components: {

HelloWorld: {

template: '<div>HelloWorld</div>'

}

}

})

app.mount('#app')

我们可以使用mount方法将Vue应用挂载到一个HTML元素上(这里的#app对应的是HTML元素的id)。

3.注意事项

3.1 全局/局部注册

除了使用components属性来添加组件之外,我们还可以使用Vue.component()方法来全局注册组件。

import { createApp } from 'vue'

import HelloWorld from './components/HelloWorld.vue'

const app = createApp({})

app.component('hello-world', HelloWorld)

app.mount('#app')

在Vue 3.x中,Vue.component()被Vue.component('HelloWorld', HelloWorld)取代了。需要注意的是,使用组件时,组件名称应该是连接的kebab-case,而不是大写字母和驼峰式命名。

在Vue 3.x中,每个Vue应用都是相互独立的,因此可以在每个Vue应用中局部注册组件。这意味着组件只能在当前应用中使用,而不是全局可用。

3.2 组件选项的修改

在使用createApp创建Vue应用时,大多数选项都可以修改,并且可以通过Vue应用的实例来进行修改。例如,我们可以通过以下方式修改根组件的template属性。

const app = createApp({

template: '<div>Root Component</div>'

})

app.component('hello-world', {

template: '<div>HelloWorld</div>'

})

// 修改根组件的template属性

app.config.globalProperties.$options.template = '<h1>Root Component</h1><hello-world></hello-world>'

app.mount('#app')

通过在Vue应用实例中设置config.globalProperties.$options属性的子属性,我们可以修改根组件的选项。这里的$options可以包含我们在创建应用时设定的所有选项。

3.3 组件实例的生命周期

组件实例有生命周期钩子函数,它们被用来在组件生命周期中执行一些操作。在Vue.createApp创建Vue应用时,每个组件的生命周期钩子函数都可以使用setup(),这是一个新的组件选项。

const Counter = {

props: ['initialCount'],

setup(props) {

const count = Vue.ref(props.initialCount)

Vue.watch(count, (val) => {

console.log(`count is changing to ${val}`)

})

return { count }

},

template: `<div>{{ count }}</div>`

}

const app = Vue.createApp({

components: {

Counter

},

template: `

<div>

<Counter :initial-count="10"></Counter>

</div>

`

})

app.mount('#app')

上面的例子展示了在Vue 3.x中定义组件,组件选项使用setup(),对组件属性进行监听。

4.总结

Vue.createApp是在Vue 3.x中使用的创建Vue应用的方法。通过Vue.createApp创建的应用具有全局/局部注册组件、修改组件选项、监听组件实例生命周期等功能。希望本文中介绍的内容能够帮助读者更好的理解Vue 3.x来创建Vue应用。