返回

如何在 Vue 3 + Vite 2 + TypeScript 项目中使用 Composition API

前端

引入 Composition API

要在 Vue 3 + Vite 2 + TypeScript 项目中使用 Composition API,首先需要在项目中安装 @vue/composition-api 包。您可以使用以下命令进行安装:

npm install @vue/composition-api

安装完成后,您需要在项目的 main.js 文件中导入 @vue/composition-api 包。

import Vue from 'vue'
import { createApp } from 'vue'
import App from './App.vue'
import { createPinia } from 'pinia'

Vue.use(createPinia())

const app = createApp(App)

app.mount('#app')

使用 Composition API

Composition API 可以通过 setup() 函数来使用。setup() 函数会在组件创建之前执行,它可以用来初始化组件状态、绑定事件处理函数等。

export default {
  name: 'MyComponent',
  setup() {
    const count = ref(0)

    const increment = () => {
      count.value++
    }

    return {
      count,
      increment
    }
  }
}

setup() 函数中,我们使用 ref() 函数创建了一个响应式变量 count,并使用 increment() 函数来增加 count 的值。

使用 Composition API 写组件

可以使用 Composition API 来编写组件。以下是使用 Composition API 编写组件的步骤:

  1. 创建一个 setup() 函数。
  2. setup() 函数中,使用 ref() 函数创建响应式变量。
  3. setup() 函数中,使用 onMounted()onBeforeUnmount() 生命周期钩子来处理组件的 mounted 和 beforeUnmount 事件。
  4. 在组件模板中,使用响应式变量来更新组件的 UI。

Composition API 的优点

Composition API 具有以下优点:

  • 可重用性: Composition API 可以让您编写可重用的组件逻辑,以便在多个组件中使用。
  • 声明性: Composition API 允许您以更具声明性的方式编写组件,这使得组件更容易理解和维护。
  • 易于测试: Composition API 使得组件更容易测试,因为您可以直接测试组件的逻辑,而无需关注组件的模板。

Composition API 的示例

以下是一些使用 Composition API 编写的组件示例:

  • 计数器组件:
export default {
  name: 'Counter',
  setup() {
    const count = ref(0)

    const increment = () => {
      count.value++
    }

    return {
      count,
      increment
    }
  },
  template: `
    <div>
      <p>Count: {{ count }}</p>
      <button @click="increment">Increment</button>
    </div>
  `
}
  • 用户列表组件:
export default {
  name: 'UserList',
  setup() {
    const users = ref([])

    const fetchUsers = async () => {
      const response = await fetch('/api/users')
      const data = await response.json()

      users.value = data
    }

    useEffect(() => {
      fetchUsers()
    }, [])

    return {
      users
    }
  },
  template: `
    <div>
      <ul>
        <li v-for="user in users" :key="user.id">{{ user.name }}</li>
      </ul>
    </div>
  `
}

结论

Composition API 是 Vue 3 中引入的一种新的 API,它允许您以更具声明性和可重用的方式编写组件。在本文中,我们介绍了如何将 Composition API 集成到 Vue 3 + Vite 2 + TypeScript 项目中,并通过几个示例展示了如何使用它来编写组件。希望本文对您有所帮助。