91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Vuex之理解state的用法實例

發布時間:2020-09-06 19:17:36 來源:腳本之家 閱讀:159 作者:何凱 欄目:web開發

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
  }

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

正蓝旗| 娄烦县| 宁国市| 张家川| 安顺市| 逊克县| 定结县| 会理县| 宜黄县| 墨江| 应城市| 闽清县| 柯坪县| 定南县| 扎囊县| 新源县| 阿尔山市| 潢川县| 义马市| 岳阳县| 平武县| 井研县| 普格县| 乃东县| 衡山县| 上蔡县| 苏州市| 辽宁省| 英吉沙县| 寿阳县| 合作市| 衡南县| 正蓝旗| 沿河| 九江县| 承德市| 梧州市| 孟州市| 阳泉市| 老河口市| 焉耆|