国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

Vuex之理解state的用法實例

2024-05-06 15:18:21
字體:
來源:轉載
供稿:網友

1.什么是state?

上一篇文章說了,Vuex就是提供一個倉庫,倉庫里面放了很多對象。其中state就是數據源存放地,對應于與一般Vue對象里面的data(后面講到的actionsmutations對應于methods)。

響應書存儲:state里面存放的數據是響應式的,Vue組件從store中讀取數據,若是store中的數據發生改變,依賴這個數據的組件也會發生更新。(這里“狀態”=“數據”),也就是是說數據和視圖是同步的。

2.局部狀態

獲取:在Vue組件中獲取數據,最直接的可以通過計算屬性中獲取;

組件仍然可以保存局部狀態:雖然說VuexStore倉庫讓我們同一管理數據變得更加方便,但是代碼一多也會變得冗長,有些組件的數據是自己嚴格自用,我們可以將state放在組件自身,作為局部數據,專供此組件使用,其他的組件不能用。

3.mapState

mapState的作用是把全局的 state getters 映射到當前組件的 computed 計算屬性中,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 = {}  //定義一個對象  normalizeMap(states).forEach(({ key, val }) => {  // normalizeMap()函數初始化states數據     res[key] = function mappedState () {      return typeof val === 'function'      // 判斷val是否是函數      ? val.call(this, this.$store.state, this.$store.getters)      // 若val是函數,將store的state和getters作為參數,返回值作為mapped State的返回值      : this.$store.state[val]}})    return res // 返回的是一個函數  }//初始化方法  function normalizeMap (map) {    return Array.isArray(map) //判斷state是否是數組    ? map.map(key => ({ key, val: key }))    // 是數組的話,調用map方法,將每一個數組元素轉換成{key,val:key}    : Object.keys(map).map(key => ({ key, val: map[key] }))    // 否則就是對象,遍歷對象,將每一個val變成val:key  }

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持錯新站長站。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 安吉县| 黑水县| 雷山县| 德惠市| 伽师县| 彩票| 盐池县| 河东区| 都兰县| 宣恩县| 泸定县| 佛山市| 衢州市| 格尔木市| 伊金霍洛旗| 台湾省| 阿鲁科尔沁旗| 饶河县| 顺昌县| 大荔县| 鱼台县| 武义县| 滕州市| 日土县| 贵州省| 长葛市| 峨山| 容城县| 盐山县| 普兰店市| 澄迈县| 渝中区| 象州县| 璧山县| 涟源市| 沭阳县| 望都县| 桦南县| 宾阳县| 安多县| 门头沟区|