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

如何修改vuex里面的數(shù)據(jù)

 更新時間:2025年04月09日 08:38:20   作者:檸檬樹^-^  
這篇文章主要介紹了如何修改vuex里面的數(shù)據(jù)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

修改vuex里面的數(shù)據(jù)

Vuex 使用 mutations 來修改狀態(tài)數(shù)據(jù)。Mutation 提供了一種在同步方式下修改 Vuex state 的方式,確保所有狀態(tài)的變更都可以被追蹤。

首先,在 Vuex store 中定義一個 mutation。可以通過 store.commit() 方法來觸發(fā) mutation。

例如:我們給state中的cart追贈數(shù)據(jù)

store/index.js

state:{
  cart:[]
},
mutations:{
  updateCart(state,cart){
      state.cart=cart
    }
}

渲染數(shù)據(jù):

<view  v-for="(item,index)in cart" :key="index">
   xxx
<view>

import { mapState } from 'vuex';
  export default {
    computed:{
      ...mapState(['cart'])
    }
  }

需求:增加新的數(shù)據(jù)(方法)

錯誤示范

  • 案例1:
this.$store.state.cart.push()

問題:很明顯這么干是錯誤的,因為state的數(shù)據(jù)只能由mutations來修改

  • 案例2:
const cartList=this.$store.state.cart
cartList.push()
this.$store.commit('updateCart',xxxx)

問題:這樣也是錯誤的,看起來是通過commit觸發(fā)mutations來修改cart數(shù)據(jù)的,其實

const cartList=this.$store.state.cart
cartList.push()

這兩步就已經(jīng)可以實現(xiàn)數(shù)據(jù)的添加,雖然數(shù)據(jù)添加成功了,但是在控制臺vuex中cart的數(shù)據(jù)并沒有發(fā)生變化,這是因為state中的數(shù)據(jù)雖然更改了,但是沒有經(jīng)過mutations,所有狀態(tài)的變更都不可以被追蹤到。

手動點擊Root相當于刷新vuex,這時候vuex中的cart數(shù)據(jù)更新到最新的狀態(tài),但是并不知道什么時候更改的,對后期如果想要操作cart中的數(shù)據(jù)有影響

正確寫法

先深拷貝,在新增

computed:{
   cart(){
        return JSON.parse(JSON.stringify(this.$store.state.cart))
   }

     
method:{
  updateData(){
      this.cart.push(xxx)
      this.$store.commit('updateCart',this.cart)
}

總結(jié)

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

相關(guān)文章

最新評論

张北县| 淮阳县| 都匀市| 卓尼县| 麦盖提县| 玉门市| 宁化县| 贵德县| 沂源县| 湄潭县| 上虞市| 鄄城县| 长治县| 双城市| 明溪县| 密山市| 武平县| 樟树市| 平舆县| 平度市| 东辽县| 富裕县| 姚安县| 平武县| 廉江市| 周口市| 桓仁| 深泽县| 罗城| 霍山县| 宁安市| 谢通门县| 墨脱县| 唐河县| 闵行区| 翼城县| 安仁县| 宣城市| 威远县| 莱西市| 丹凤县|