入坑前端12:抽象的Vuex

一.如果你的項(xiàng)目中,需要用到在各個(gè)子組件中共享數(shù)據(jù),則你就需要用到Vue.x

state:{},狀態(tài),把需要在多個(gè)組件之間共享的數(shù)據(jù),可以理解為Vue實(shí)列中的data
mutations:{}要修改state中的數(shù)據(jù),你只能通過(guò)mutation中的方法

使用:一旦你在vue實(shí)列中注入了store,則在所有的子組件及vue實(shí)列中,你都可以通過(guò) this.$store.state.數(shù)據(jù)名,去修改數(shù)據(jù),但是vuex反對(duì)這么做,因?yàn)檫@種方式修改數(shù)據(jù),不會(huì)再vuex調(diào)試面板留下記錄。

image.png

Mutations你可以理解它的每個(gè)屬性名:表示一個(gè)事件名。它的每個(gè)屬性值:表示當(dāng)這個(gè)事件發(fā)生之后要調(diào)用的函數(shù)。

image.png

調(diào)用mutations

格式:this.$store.commit(“mutations中的屬性名”)

注意思想:在組件內(nèi)部去提交(commit) mutations


image.png

二:Vuex的四個(gè)概念

Getters:從state中的數(shù)據(jù),取出一部分來(lái),依據(jù)數(shù)據(jù)項(xiàng)產(chǎn)生新的結(jié)果,類(lèi)似于Vue實(shí)列中的computed(計(jì)算屬性)
Actions:在對(duì)數(shù)據(jù)實(shí)現(xiàn)異步操作時(shí),要用的

拿數(shù)據(jù):
方法一 :this.$store.state.amount

image.png

方法二:用計(jì)算屬性computed來(lái)獲取數(shù)據(jù)


image.png

方法三:直接用mapState來(lái)獲取數(shù)據(jù)

image.png

mapState是一個(gè)函數(shù),這里就是調(diào)用這個(gè)函數(shù),實(shí)參是一個(gè)數(shù)組[“amount”]它的返回值是一個(gè)對(duì)象。

image.png

Getters

有時(shí)候希望在state中數(shù)據(jù)基礎(chǔ)上,派生出一些其他的數(shù)據(jù),例如:我們想知道有多少人的分?jǐn)?shù)小于60分。這里就要用到getters

1.在vuex中定義getters


image.png

2.拿數(shù)據(jù)


image.png

這種寫(xiě)法太長(zhǎng)了,不好看。所以用mapGetters,簡(jiǎn)化代碼


image.png

Mutations:修改數(shù)據(jù)

1.比如說(shuō)我們要向list里邊加一條數(shù)據(jù)


在組件中使用

2.
image.png

3.效果
image.png

這樣寫(xiě)還是比較麻煩,所以用mapMutations,但是用mapMutations時(shí)候注意
image.png
image.png

Actions

在mutations中,操作是異步的。

image.png

image.png

所以這個(gè)會(huì)跟我們跟蹤代碼帶來(lái)影響,所以我們要把異步操作寫(xiě)在actions中。

1.操作actions:


image.png

2.在組件中使用actions


image.png

3.簡(jiǎn)寫(xiě)


image.png
?著作權(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)容

  • 安裝 npm npm install vuex --save 在一個(gè)模塊化的打包系統(tǒng)中,您必須顯式地通過(guò)Vue.u...
    蕭玄辭閱讀 3,038評(píng)論 0 7
  • vuex 場(chǎng)景重現(xiàn):一個(gè)用戶(hù)在注冊(cè)頁(yè)面注冊(cè)了手機(jī)號(hào)碼,跳轉(zhuǎn)到登錄頁(yè)面也想拿到這個(gè)手機(jī)號(hào)碼,你可以通過(guò)vue的組件化...
    sunny519111閱讀 8,163評(píng)論 4 111
  • Vuex是什么? Vuex 是一個(gè)專(zhuān)為 Vue.js應(yīng)用程序開(kāi)發(fā)的狀態(tài)管理模式。它采用集中式存儲(chǔ)管理應(yīng)用的所有組件...
    蕭玄辭閱讀 3,232評(píng)論 0 6
  • 目錄 - 1.什么是vuex? - 2.為什么要使用Vuex? - 3.vuex的核心概念?||如何在組件中去使用...
    我跟你蔣閱讀 4,237評(píng)論 4 51
  • 姓名:岳沁 學(xué)號(hào):17101223458 轉(zhuǎn)載自:http://blog.csdn.net/h5_queensty...
    丘之心閱讀 2,215評(píng)論 0 1

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