Vue 3.0 中引入了组合式 API(Composition API),这是一种新的 API 风格,旨在提供更灵活、可组合和可维护的代码组织方式。组合式 API 的引入是为了解决在大型组件中难以管理和理解的问题,尤其是在涉及到逻辑复用和代码拆分的情况下。

以下是组合式 API 的主要概念和用法:

setup 函数

每个使用组合式 API 的组件都必须包含一个名为 setup 的函数。setup 函数在组件实例创建之前执行,允许你设置组件的状态、计算属性、方法等。
<template>
  <div>{{ message }}</div>
</template>

<script>
export default {
  setup() {
    const message = 'Hello, Composition API!';
    
    return {
      message
    };
  }
};
</script>

响应式引用

ref 和 reactive 仍然是组合式 API 中用于创建响应式数据的函数。使用 ref 可以包装基本类型数据,而 reactive 用于创建响应式对象。
<script>
import { ref, reactive } from 'vue';

export default {
  setup() {
    const count = ref(0);
    const state = reactive({
      message: 'Hello',
      count
    });

    return {
      count,
      state
    };
  }
};
</script>

computed 函数

computed 函数用于创建计算属性,它接受一个 getter 函数,根据其依赖自动追踪响应式变化。
<script>
import { ref, computed } from 'vue';

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

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

    return {
      count,
      doubledCount
    };
  }
};
</script>

生命周期钩子

组合式 API 中引入了一些新的生命周期钩子函数,例如 onMounted、onUpdated、onUnmounted 等,用于在组件生命周期的不同阶段执行逻辑。
<script>
import { onMounted, onUnmounted } from 'vue';

export default {
  setup() {
    onMounted(() => {
      console.log('Component mounted');
    });

    onUnmounted(() => {
      console.log('Component unmounted');
    });
  }
};
</script>

watch 和 watchEffect

watch 函数用于侦听响应式数据的变化,执行自定义的回调函数。watchEffect 则是一个无需手动指定依赖的侦听函数,它会自动追踪内部响应式数据的变化。
<script>
import { ref, watch, watchEffect } from 'vue';

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

    watch(count, (newValue, oldValue) => {
      console.log(`count changed from ${oldValue} to ${newValue}`);
    });

    watchEffect(() => {
      console.log(`count is ${count.value}`);
    });

    return {
      count
    };
  }
};
</script>

组合式 API 提供了一种更灵活和清晰的组织代码的方式,特别适用于大型项目或者需要更好代码拆分和复用的场景。组合式 API 并不取代 Options API,而是为其提供了一种补充和扩展。在开发过程中,你可以根据项目的需求选择使用 Options API 或组合式 API。


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