store 的组合式写法通常指的是使用 Vue.js 的状态管理库 Pinia 来定义和管理 store。在 Pinia 中,store 可以使用两种方式来定义:选项式写法和组合式写法。 download://kuxueit.cn/8421/
选项式写法
选项式写法更接近 Vue 2.x 中的 Vuex 风格,它使用 defineStore 函数来定义 store,并传递一个唯一的名字和一个包含 state、getters、actions 等选项的对象。
javascript
复制代码
import { defineStore } from 'pinia' const useStore = defineStore('main', { state: () => ({ count: 0 }), getters: { doubleCount: (state) => state.count * 2 }, actions: { increment() { this.count++ } } }) export default useStore
组合式写法
组合式写法则更接近 Vue 3.x 的 Composition API 风格,它使用 defineStore 函数来定义 store,并传递一个唯一的名字和一个返回对象的函数。这个返回的对象包含了 state、getters 和 actions。
javascript
复制代码
import { defineStore, ref, computed } from 'pinia' const useStore = defineStore('main', () => { const count = ref(0) const doubleCount = computed(() => count.value * 2) function increment() { count.value++ } return { count, doubleCount, increment } }) export default useStore
在组合式写法中,你可以直接使用 Vue 3 的响应式 API(如 ref 和 computed)来定义状态和数据。这种写法更加灵活,并且更容易与其他 Vue Composition API 功能结合使用。
两种写法各有优点,选择哪种取决于你的个人喜好和项目需求。不过,Pinia 的官方文档更倾向于推荐组合式写法,因为它与 Vue 3 的 Composition API 更加一致,且更加灵活和可维护。