1.什么是state?
成都創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司,專注成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、網(wǎng)站營銷推廣,空間域名,虛擬主機(jī),網(wǎng)站改版維護(hù)有關(guān)企業(yè)網(wǎng)站制作方案、改版、費(fèi)用等問題,請(qǐng)聯(lián)系成都創(chuàng)新互聯(lián)。
上一篇文章說了,Vuex
就是提供一個(gè)倉庫,倉庫里面放了很多對(duì)象。其中state
就是數(shù)據(jù)源存放地,對(duì)應(yīng)于與一般Vue
對(duì)象里面的data
(后面講到的actions
和mutations
對(duì)應(yīng)于methods
)。
響應(yīng)書存儲(chǔ):state
里面存放的數(shù)據(jù)是響應(yīng)式的,Vue
組件從store
中讀取數(shù)據(jù),若是store
中的數(shù)據(jù)發(fā)生改變,依賴這個(gè)數(shù)據(jù)的組件也會(huì)發(fā)生更新。(這里“狀態(tài)”=“數(shù)據(jù)”),也就是是說數(shù)據(jù)和視圖是同步的。
2.局部狀態(tài)
獲?。涸?code>Vue組件中獲取數(shù)據(jù),最直接的可以通過計(jì)算屬性中獲??;
組件仍然可以保存局部狀態(tài):雖然說Vuex
的Store
倉庫讓我們同一管理數(shù)據(jù)變得更加方便,但是代碼一多也會(huì)變得冗長,有些組件的數(shù)據(jù)是自己嚴(yán)格自用,我們可以將state
放在組件自身,作為局部數(shù)據(jù),專供此組件使用,其他的組件不能用。
3.mapState
mapState
的作用是把全局的 state
和 getters
映射到當(dāng)前組件的 computed
計(jì)算屬性中,this.$store.state
。
使用示例
import {mapState} from 'vuex' export default { computer : mapState({ count: state => state.count, 'count' // 映射 this.count 為 store.state.count }) }
看看源碼
export function mapState (states) { const res = {} //定義一個(gè)對(duì)象 normalizeMap(states).forEach(({ key, val }) => { // normalizeMap()函數(shù)初始化states數(shù)據(jù) res[key] = function mappedState () { return typeof val === 'function' // 判斷val是否是函數(shù) ? val.call(this, this.$store.state, this.$store.getters) // 若val是函數(shù),將store的state和getters作為參數(shù),返回值作為mapped State的返回值 : this.$store.state[val]}}) return res // 返回的是一個(gè)函數(shù) } //初始化方法 function normalizeMap (map) { return Array.isArray(map) //判斷state是否是數(shù)組 ? map.map(key => ({ key, val: key })) // 是數(shù)組的話,調(diào)用map方法,將每一個(gè)數(shù)組元素轉(zhuǎn)換成{key,val:key} : Object.keys(map).map(key => ({ key, val: map[key] })) // 否則就是對(duì)象,遍歷對(duì)象,將每一個(gè)val變成val:key }
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。
網(wǎng)頁標(biāo)題:Vuex之理解state的用法實(shí)例
分享網(wǎng)址:http://www.rwnh.cn/article12/ghcsgc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、建站公司、電子商務(wù)、靜態(tài)網(wǎng)站、營銷型網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)