在 Vue 3 中,引入了 Composition API(组合式 API),它是一种新的 API,用于更灵活和可组合地组织组件的逻辑。Composition API 基于函数式的思想,允许你将组件的代码划分为更小的、可重用的逻辑单元。

下面是一些基本概念和用法:

Setup 函数

Vue 3 中的每个组件都可以包含一个 setup 函数。setup 函数是组合式 API 的入口,它在组件实例被创建之前执行,可以返回一个对象,该对象中的属性和方法将被暴露给组件的模板部分。
<template>
  <div>
    <p>{{ message }}</p>
    <button @click="increaseCount">Increase Count</button>
  </div>
</template>

<script>
export default {
  setup() {
    const message = 'Hello, Vue 3!';
    const count = ref(0);

    const increaseCount = () => {
      count.value++;
    };

    return {
      message,
      count,
      increaseCount
    };
  }
};
</script>

在上述例子中,setup 函数返回一个对象,其中包含了 message、count 和 increaseCount。这些属性和方法可以在模板中直接使用。

Reactive

reactive 是 Composition API 提供的一个函数,用于创建响应式对象。与 Vue 2.x 中的 data 不同,reactive 可以用于创建任何数据结构的响应式版本。
import { reactive } from 'vue';

setup() {
  const state = reactive({
    message: 'Hello, Vue 3!',
    count: 0
  });

  const increaseCount = () => {
    state.count++;
  };

  return {
    state,
    increaseCount
  };
}

Ref

ref 是用于创建一个包装基本类型值的对象,使其成为响应式的。在 setup 函数中,你可以使用 ref 来创建响应式变量。
import { ref } from 'vue';

setup() {
  const message = ref('Hello, Vue 3!');
  const count = ref(0);

  const increaseCount = () => {
    count.value++;
  };

  return {
    message,
    count,
    increaseCount
  };
}

Computed

computed 函数可以用于创建计算属性,与 Vue 2.x 中的计算属性类似。
import { ref, computed } from 'vue';

setup() {
  const count = ref(0);

  const doubledCount = computed(() => {
    return count.value * 2;
  });

  const increaseCount = () => {
    count.value++;
  };

  return {
    count,
    doubledCount,
    increaseCount
  };
}

这是一个简单的介绍,Composition API 还提供了其他很多功能和钩子,例如 watch、onMounted、onUpdated 等,使得组件的逻辑更加清晰、可维护。根据具体的业务需求,你可以选择灵活使用 Composition API 来组织和管理组件的逻辑。


转载请注明出处:http://www.zyzy.cn/article/detail/512/Vue 3.0