# 组合模式

# Options API

在 Vue 中引入组合式 API 之前,开发人员依靠选项式 API 来组织组件逻辑,包括响应式数据、生命周期方法、计算属性等。Options API 允许在特定选项中定义这些方面,如下例所示:

<!-- Template -->

<script>
  export default {
    name: "MyComponent",
    props: {
      // props
    },
    data() {
      // data
    },
    computed: {
      // computed properties
    },
    watch: {
      // properties to watch
    },
    methods: {
      // methods
    },
    created() {
      // lifecyle methods like created
    },
    // ...
  };
</script>

<!-- Styles -->

# Composition API

组合式 API 可以看作是一个提供代表 Vue 核心能力的独立函数的 API。这些函数主要在单个 setup() 选项中使用,该选项用作使用组合式 API 的入口点。

# Composables

采用组合式 API 的一个巨大好处是能够提取和重用组件之间的共享逻辑。这是由这样一个事实驱动的,即我们可以简单地声明自己的函数,这些函数使用 Vue 的全局可用的组合函数,并让我们的函数很容易在多个组件中使用以实现相同的结果。

import { ref } from "vue";

export function useCounter(initialCount = 0) {
  const count = ref(initialCount);

  function increment() {
    count.value++;
  }

  function decrement() {
    count.value--;
  }

  return {
    count,
    increment,
    decrement,
  };
}

借助可组合函数,我们可以灵活地跨组件提取和重用共享逻辑。这种关注点分离使我们能够专注于每个可组合函数中的特定功能,使我们的代码更加模块化和可维护。