最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Pinia 的 Setup Stores 語(yǔ)法使用實(shí)例詳解

 更新時(shí)間:2022年09月15日 16:47:31   作者:pany  
這篇文章主要為大家介紹了Pinia 的 Setup Stores 語(yǔ)法使用實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

關(guān)于大菠蘿

如果你還不了解 Pinia,那你可以將它理解為 Vuex5(因?yàn)?Vuex 5 不會(huì)出了),是 Vue3 全家桶成員之一。

這里是它的英文官方文檔,中文文檔好像不是官方的,并且當(dāng)前翻譯的不全面(比如 Setup Stores 就沒(méi)有在中文文檔中出現(xiàn)),不是很推薦。

最常見(jiàn)的 Option Stores 語(yǔ)法

傳遞帶有 state、gettersactions 屬性的 Options 對(duì)象給 defineStore() 就可以定義一個(gè) Store:

export const useCounterStore = defineStore('counter', {
  state: () => ({ 
    count: 0
 }),
  getters: {
    doubleCount: (state) => state.count * 2
  },
  actions: {
    increment() {
      this.count++
    }
  }
})

這種語(yǔ)法與 Vuex 中定義 Store 的語(yǔ)法非常近似,但是少了 Mutation 字段。

不僅如此,這種寫(xiě)法也和 Vue2 的 Options API(選項(xiàng)式 API)結(jié)構(gòu)類(lèi)似:statedata 對(duì)應(yīng)、getterscomputed 對(duì)應(yīng)、actionsmethods 對(duì)應(yīng)。

這種寫(xiě)法的好處就是結(jié)構(gòu)非常清晰,容易上手,特別是對(duì)剛從 Vue2 和 Vuex 轉(zhuǎn)到 Pinia 的開(kāi)發(fā)者!

安利 Setup Stores 語(yǔ)法

但 Setup Stores 語(yǔ)法更靈活、更函數(shù):

export const useCounterStore = defineStore('counter', () => {
  const count = ref(0)
  const doubleCount = computed(() => count.value * 2)
  function increment() {
    count.value++
  }
  return { count, doubleCount, increment }
})

在這種語(yǔ)法中,refstate 對(duì)應(yīng)、computedgetters 對(duì)應(yīng)、functionactions 對(duì)應(yīng)。

想必寫(xiě)過(guò) Vue3 朋友就能一眼看出來(lái)這和 Vue3 新推出的 Composition API(組合式 API)非常類(lèi)似!這樣的話,在使用 Vue3 和 Pinia 的時(shí)候,就能統(tǒng)一語(yǔ)法了。

如果在 Vue3 的 Setup 語(yǔ)法外使用 Pinia 呢?

如果你準(zhǔn)備在 Vue3 的 Setup 語(yǔ)法外引入 Pinia 的 Store,例如 useCounterStore。

直接 import { useCounterStore } from "@/store/modules/xxxxxx" 是不行的,你得像這樣:

import store from "@/store"
export const useCounterStore = defineStore('counter', () => {
  const count = ref(0)
  const doubleCount = computed(() => count.value * 2)
  function increment() {
    count.value++
  }
  return { count, doubleCount, increment }
})
/** 在 setup 外使用 */
export function useCounterStoreHook() {
  return useCounterStore(store)
}

然后引入 import { useCounterStoreHook } from "@/store/modules/xxxxxx" 即可!

集成好 Pinia 的模板

最后自薦一下這個(gè)輕量級(jí) Vue3 后臺(tái)管理模板,集成好了 Pinia 并且語(yǔ)法正是 Setup Stores!

GitHub: v3-admin-vite

Gitee: v3-admin-vite

以上就是Pinia 的 Setup Stores 語(yǔ)法使用實(shí)例詳解的詳細(xì)內(nèi)容,更多關(guān)于Pinia Setup Stores 語(yǔ)法的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論

郸城县| 汤原县| 老河口市| 拉萨市| 阜康市| 清苑县| 黔江区| 平果县| 二连浩特市| 望江县| 丰城市| 湘乡市| 霍林郭勒市| 沂南县| 关岭| 兴山县| 定西市| 固镇县| 县级市| 安义县| 泰安市| 囊谦县| 阜康市| 碌曲县| 吉林省| 霞浦县| 盘山县| 婺源县| 开封县| 古蔺县| 曲靖市| 彝良县| 平潭县| 修水县| 衢州市| 六安市| 吉林市| 青川县| 长宁区| 天镇县| 尼木县|