最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vuex中如何getters動(dòng)態(tài)獲取state的值

 更新時(shí)間:2022年08月31日 17:09:31   作者:Juice-Dreamer  
這篇文章主要介紹了Vuex中如何getters動(dòng)態(tài)獲取state的值,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Vuex getters動(dòng)態(tài)獲取state的值

在做項(xiàng)目時(shí),getters里有很多冗余代碼,但是仔細(xì)一看可以根據(jù)參數(shù)來(lái)解決,于是決定使用傳參來(lái)進(jìn)行獲取,減少代碼冗余。

案例

需求:在getters里能夠根據(jù)值動(dòng)態(tài)獲取到people的元素。經(jīng)過(guò)多次嘗試,最終得到下面的代碼。 

state.js代碼如下:

export default {
  people: [
    {
      name: 'zs',
      age: 14
    },
    {
      name: 'ss',
      age: 24
    },
    {
      name: 'gh',
      age: 34
    }
  ]
}

getters.js代碼如下:

const getters = {
// 根據(jù)index獲取state.person[index]
  getPerson: function (state) {
    // console.log(state)
    return function (index) {
      return state.people[index]
    }
  }, 
  // 獲取state.person[0]
  getPerson1: function (state) {
    // console.log('getPerson1:', state.people[0]) 
    // console.log(typeof getters.getPerson) return function
    // console.log(getters.getPerson(state)(1))  注: state不傳過(guò)去的話,getPerson()找不到state
    return getters.getPerson(state)(1) // 成功獲取state.person[0]
  },
  getPerson2: function (state) {
    return getters.getPerson(state)(2) // 成功獲取到state.person[1]
  }
}
export default getters

說(shuō)明

因?yàn)轫?xiàng)目中數(shù)據(jù)還要響應(yīng)式,因此我使用setInterval方法來(lái)模擬是否會(huì)實(shí)時(shí)更新,事實(shí)證明可以,因此可以推薦用這種方法。

Vuex state值更改但是getters未更新

實(shí)現(xiàn)效果

選擇一種交通工具則出現(xiàn)對(duì)應(yīng)的席別列表。

state:

 seatList: {},//初始席別

最后state結(jié)果:

seatList: {
  '1':[{
  code:"101",
  name:'經(jīng)濟(jì)艙'
  },{
  code:"102",
  name:'公務(wù)艙'
  }],
  '2':[{
    code:"201",
    name:'商務(wù)座'
  },
  ...
  ]
},

getters:

seatListItem:(state)=>(key)=>{
    let list=state.common.seatList;
    return list[key]?list[key]:[]
  },

mutations:

SET_SEAT_LIST: (state,data) => {
      state.seatList = null;//問(wèn)題出現(xiàn)在此處,對(duì)象要先置為null再賦值就可
      state.seatList= data;
    },

template:

<!-- 席別-->
          <el-select v-if="scope.row.vehicleCode&&seatListItem(scope.row.vehicleCode)" placeholder="" size="small"
                     class="selectWidth"
                     @change="handleChangeSeatType($event,scope.$index,receiptTableArr)"
                     v-model="scope.row.seatName"
                     :disabled="types == 'look'||!scope.row.vehicleCode"
                     v-bind:class="[types == 'look'?'numberStyleLocck':'','clearCursor']">
            <el-option
              v-for="(item,itenIndex) in seatListItem(scope.row.vehicleCode)"
              :label="item.value"
              :value="item"
              :key="itenIndex"
            ></el-option>
          </el-select>

computed:

computed: {
      ...mapState({
        vehicleList: state => state.vehicleList,//交通工具
        seatList: state => state.seatList,//席別
      }),
      ...mapGetters(['seatListItem'])
    },

methods:

getVehicleList(other){
      getVehicleSeatList({
        type:'JT',
        other 
      }).then((res)=>{
        if(res.data.code==200){
          const data = res.data.data;
          let seatList= this.$store.state.seatList;
              if(!seatList[other]){
                seatList[other]=data
              }
              this.$store.commit('SET_SEAT_LIST', seatList, params.other);
        } else {
          this.$message.warning('獲取交通工具席別失敗');
          return false
        }
      })
    },

最后發(fā)現(xiàn),在mutations中要先將state設(shè)置為空然后再賦值,否則不更新。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue+element?ui表格添加多個(gè)搜索條件篩選功能(前端查詢)

    vue+element?ui表格添加多個(gè)搜索條件篩選功能(前端查詢)

    這篇文章主要給大家介紹了關(guān)于vue+element?ui表格添加多個(gè)搜索條件篩選功能的相關(guān)資料,最近在使用element-ui的表格組件時(shí),遇到了搜索框功能的實(shí)現(xiàn)問(wèn)題,需要的朋友可以參考下
    2023-08-08
  • 深入分析element ScrollBar滾動(dòng)組件源碼

    深入分析element ScrollBar滾動(dòng)組件源碼

    這篇文章主要介紹了element ScrollBar滾動(dòng)組件源碼深入分析,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • 深入探討Vue?3中的組合式函數(shù)編程方式

    深入探討Vue?3中的組合式函數(shù)編程方式

    Vue?3中引入了組合式函數(shù)編程方式,可以更好地實(shí)現(xiàn)代碼的復(fù)用和可維護(hù)性。通過(guò)定義可組合的函數(shù),可以將組件的邏輯和狀態(tài)進(jìn)行拆分和組合,實(shí)現(xiàn)更靈活的代碼組織方式。同時(shí),組合式函數(shù)也支持響應(yīng)式數(shù)據(jù)和生命周期鉤子函數(shù),更加貼近Vue開(kāi)發(fā)的實(shí)際場(chǎng)景
    2023-05-05
  • vue3使用echarts繪制折線圖的代碼示例

    vue3使用echarts繪制折線圖的代碼示例

    這篇文章主要為大家學(xué)習(xí)介紹了Vue3如何使用echarts實(shí)現(xiàn)繪制折線圖,文中有詳細(xì)的示例代碼供大家參考,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-07-07
  • vue3清空l(shuí)et?arr?=?reactive([])的實(shí)現(xiàn)示例

    vue3清空l(shuí)et?arr?=?reactive([])的實(shí)現(xiàn)示例

    本文主要介紹了vue3清空l(shuí)et?arr?=?reactive([])的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-03-03
  • Vue 中 createElement 使用實(shí)例詳解

    Vue 中 createElement 使用實(shí)例詳解

    Vue 提供了createElement 來(lái)創(chuàng)建虛擬dom,方便我們來(lái)函數(shù)化的方式來(lái)定義復(fù)雜的組件結(jié)構(gòu),這篇文章主要介紹了Vue 中 createElement 使用詳解,需要的朋友可以參考下
    2022-10-10
  • vue改變數(shù)據(jù)后數(shù)據(jù)變化頁(yè)面不刷新的解決方法

    vue改變數(shù)據(jù)后數(shù)據(jù)變化頁(yè)面不刷新的解決方法

    這篇文章主要給大家介紹了關(guān)于vue改變數(shù)據(jù)后數(shù)據(jù)變化頁(yè)面不刷新的解決方法,vue比較常見(jiàn)的坑就是數(shù)據(jù)(后臺(tái)返回)更新了,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-07-07
  • vue3獲取、設(shè)置元素高度的代碼舉例

    vue3獲取、設(shè)置元素高度的代碼舉例

    這篇文章主要給大家介紹了關(guān)于vue3獲取、設(shè)置元素高度的相關(guān)資料,小編通過(guò)實(shí)際案例向大家展示操作過(guò)程,操作方法簡(jiǎn)單易懂,需要的朋友可以參考下
    2024-08-08
  • vue使用H5的audio標(biāo)簽問(wèn)題

    vue使用H5的audio標(biāo)簽問(wèn)題

    這篇文章主要介紹了vue使用H5的audio標(biāo)簽問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • elementui[el-table]toggleRowSelection默認(rèn)多選事件無(wú)法選中問(wèn)題

    elementui[el-table]toggleRowSelection默認(rèn)多選事件無(wú)法選中問(wèn)題

    這篇文章主要介紹了elementui[el-table]toggleRowSelection默認(rèn)多選事件無(wú)法選中問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11

最新評(píng)論

安国市| 玉树县| 阳春市| 进贤县| 德州市| 山西省| 象州县| 泽库县| 苏尼特左旗| 天峻县| 新化县| 凤庆县| 离岛区| 嫩江县| 鲁甸县| 龙川县| 海伦市| 东乌| 和平区| 兰溪市| 渑池县| 灵台县| 开鲁县| 张家口市| 绥江县| 四川省| 章丘市| 阿拉善左旗| 信宜市| 林西县| 微博| 仲巴县| 无为县| 竹北市| 镇平县| 荥经县| 阿荣旗| 南安市| 大方县| 上虞市| 乳山市|