學(xué)習(xí)Vue-x

1.study Vue-X

+ 安裝 npm install vuex --save

+ main.js 引用 import Vuex form "vuex"

+ use Vue.use(Vuex);

+ 將store實(shí)例掛載到實(shí)例化的vue中

+ 實(shí)例化Vuex倉(cāng)庫(kù)

? ? - const store = new Vuex.Store({})

? ? - 所有屬性都是一個(gè)對(duì)象 {} !

? 1.1核心概念一 : State

? ? + state是Vuex中的公共的狀態(tài),vuex中的state好比是所有組件的data,用于保存所有組件的公共數(shù)據(jù).

? ? + 所有組件都能通過(guò)

? ? - this.$store.state.xxx 來(lái)訪問(wèn)vuex中的屬性.

? 1.2核心概念二 : Getters

? ?+ getters屬性理解為所有組件的computed屬性,也就是計(jì)算屬性,vuex的官方文檔也是說(shuō)可以將getters看做是? ? ? ? ? ? ?store的計(jì)算屬性,

? ? + getters的返回值會(huì)根據(jù)它的依賴(lài)被緩存起來(lái),只有依賴(lài)改變它才會(huì)重新計(jì)算.

? ? - this.$store.getters.xxx 計(jì)算后返回的值

?1.3核心概念三 : Mutations

? ?+ Mutations屬性相當(dāng)于是store中的methods,mutations中保存者更改數(shù)據(jù)的回調(diào)函數(shù),該函數(shù)名官方規(guī)定叫type,? ? ? ?第一個(gè)參數(shù)是store,第二個(gè)參數(shù)是payload,也就是自定義的參數(shù).

? ? + 組件定義方法@click....

? ? + 組件methods中,執(zhí)行方法,將方法提交到vuex的mutations

? ? ? - this.$store.commit("以字符串的方式提交",自定義屬性);

? ? + vuex中mutations執(zhí)行方法(state,自定義屬性){書(shū)寫(xiě)邏輯}

? 1.4核心概念四 : Actions

? ? + actions類(lèi)似于mutations,不同在于:

? ? ? 1.actions提交的是mutations而不是直接更改狀態(tài).

? ? ? 2.actions中可以包含異步操作,mutations中絕對(duì)不允許出現(xiàn)異步.

? ? ? 3.actions中的回調(diào)函數(shù)的第一個(gè)參數(shù)是context,是一個(gè)與store實(shí)例具有相同屬性和方法的對(duì)象.

? ? + 組件定義方法@click....

? ? + 組件methods中,執(zhí)行方法,將方法提交到vuex的actions

? ? - this.$store.dispatch("以字符串的方式提交",自定義屬性);

? ? + actions執(zhí)行傳來(lái)的方法(context:第一個(gè)參數(shù),palyload:自定義參數(shù)){

? ? ? context.commit("這里提交的是mutations中的方法:異步操作",組件傳來(lái)的自定義參數(shù))}.

? 1.5核心概念五 : Modules

? ? + 由于使用單一狀態(tài)樹(shù),應(yīng)用的所有狀態(tài)會(huì)集中到一個(gè)比較大的對(duì)象。當(dāng)應(yīng)用變得非常復(fù)雜時(shí),store 對(duì)象就有可能變得相當(dāng)臃腫。為了解決以上問(wèn)題,Vuex 允許我們將 store 分割成模塊(module)。每個(gè)模塊擁有自己的 state、mutation、action、getter、甚至是嵌套子模塊——從上至下進(jìn)行同樣方式的分割

? ? ? - const moduleA = {

? ? ? ? state: { ... },

? ? ? ? mutations: { ... },

? ? ? ? actions: { ... },

? ? ? ? getters: { ... }

? ? ? ? }

? ? ? ? const moduleB = {

? ? ? ? state: { ... },

? ? ? ? mutations: { ... },

? ? ? ? actions: { ... }

? ? ? ? }

? ? ? ? const store = new Vuex.Store({

? ? ? ? modules: {

? ? ? ? ? ? a: moduleA,

? ? ? ? ? ? b: moduleB

? ? ? ? }

? ? ? ? })

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • vuex 場(chǎng)景重現(xiàn):一個(gè)用戶在注冊(cè)頁(yè)面注冊(cè)了手機(jī)號(hào)碼,跳轉(zhuǎn)到登錄頁(yè)面也想拿到這個(gè)手機(jī)號(hào)碼,你可以通過(guò)vue的組件化...
    sunny519111閱讀 8,164評(píng)論 4 111
  • 安裝 npm npm install vuex --save 在一個(gè)模塊化的打包系統(tǒng)中,您必須顯式地通過(guò)Vue.u...
    蕭玄辭閱讀 3,049評(píng)論 0 7
  • 上一章總結(jié)了 Vuex 的框架原理,這一章我們將從 Vuex 的入口文件開(kāi)始,分步驟閱讀和解析源碼。由于 Vuex...
    你的肖同學(xué)閱讀 1,890評(píng)論 3 16
  • ### store 1. Vue 組件中獲得 Vuex 狀態(tài) ```js //方式一 全局引入單例類(lèi) // 創(chuàng)建一...
    蕓豆_6a86閱讀 444評(píng)論 0 0
  • 目錄 - 1.什么是vuex? - 2.為什么要使用Vuex? - 3.vuex的核心概念?||如何在組件中去使用...
    我跟你蔣閱讀 4,241評(píng)論 4 51

友情鏈接更多精彩內(nèi)容