选项式和组合式

Vue3 提供了两种编码方式:选项式 API 和 组合式 API

  • 选项式 API (Options API):类似 Vue2 ,以“组件实例”的概念为中心(this)使用选项配置来组织代码
  • 组合式 API (Composition API):直接在函数作用域内定义响应式状态变量,更灵活更强大

setup

是一个组件创建时调用的一个钩子函数,专门用于组合式 API

<script>
import { reactive } from 'vue'
 
export default {
  setup() {
    const state = reactive({ count: 0 })
    
    // 需要 return 暴露 state 到模板中
    return {
      state
    }
  }
}
</script>

简洁写法,在 script 标签上加 setup(不需要 return):

<script setup>
import { reactive } from 'vue'
 
const state = reactive({ count: 0 })
</script>

推荐采用:组合式 API + 单文件组件 + <script setup>

创建实例

createApp() 来创建实例:

import { createApp } from 'vue'
 
import App from './App.vue' // 从一个单文件组件中导入根组件
 
const app = createApp(App)

此时创建了一个 Vue 实例,还没有挂载到 DOM,应用实例必须在调用了 .mount() 方法后才会渲染出来:

<div id="app"></div>
 
app.mount('#app')

生命周期

700

主要分为四个阶段:

选项式组合式
创建beforeCreatecreated setup
挂载beforeMountmountedonBeforeMountonMounted
更新beforeUpdateupdatedonBeforeUpdateonUpdated
销毁beforeUnmountunmountedonBeforeUnmountonUnmounted

钩子列表:

组合式 API:生命周期钩子 | Vue.js