亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Vuex實現(xiàn)數(shù)據(jù)增加和刪除功能

 更新時間:2019年11月11日 16:12:41   作者:高級前端工程師Vue方向  
今天小編就為大家分享一篇Vuex實現(xiàn)數(shù)據(jù)增加和刪除功能,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

首先,我們要安裝vuex,執(zhí)行命令yarn add vuex

1.編寫state數(shù)據(jù)

//vuex/index.js
import Vue from 'vue';
import Vuex from 'vuex';
Vue.use(Vuex);
const state = {
  bookList: [
   {id: 1, name: '西游記'},{id: 2, name: '水滸傳'},
   {id: 3, name: '紅樓夢'},{id: 4, name: '三國演義'}
  ]
}
export default new Vuex.Store({
  state
})

2.組件調(diào)用state數(shù)據(jù)進(jìn)行展示

我們的目的是把state數(shù)據(jù)賦值給vue組件進(jìn)行使用,其實,這里有兩種常用方法

//Home.vue
<p v-for='item in bookList'>{ {item.name} }<p/>

//方法一:通過computed的計算屬性直接賦值,computed屬性可以在輸出前,對data中的值進(jìn)行改變,我們就利用這種特性把state值賦值給vue模板中的data進(jìn)行使用
computed: {
  bookList( ) {
   return this.$store.state.bookList;
  }
}

//方法二:通過mapState的對象來賦值
import { mapState } from 'vuex';//首先在組件內(nèi)引入mapState
computed: {
  ...mapState(['bookList'])
}

方式二是我們經(jīng)常用到的簡寫方式

基本的數(shù)據(jù)獲取,就是這樣的實現(xiàn),此時我們看頁面,就會循環(huán)展示state中的bookList數(shù)據(jù)

3.利用mutation、action實現(xiàn)增加刪除數(shù)據(jù)

//vuex/index.js
const mutations = {
  ADD_ITEM(state,item) {
   state.bookList.push(item)
  }
}
const mutations = {
  ADD_ITEM(state,item) {
   state.bookList.push(item)
  },
  DEL_ITEM(state,id) {
   state.bookList.map((v,i)=> {
     if(v.id == id){
      state.bookList.splice(i,1)
     }
   })
  }
}
const actions = {
  add_item({commit},item) {
   commit('ADD_ITEM',item)
  },
  del_item({commit},id) {
   commit('DEL_ITEM',id)
  }
}
export default new Vuex.Store({
  state,mutations,actions
})
//Home.vue
<button @click='add_item'>ADD</button>
<p v-for='item in bookList' @click='delItem(item.id)'>{ {item.name} }<p/>

import { mapState, } from 'vuex';

computed: {
  ...mapState(['bookList'])
}
methods: {
  add_item() {
   let newObject = {id:this.bookList.length,name:'葫蘆娃'}
   this.$store.dispatch('add_item',newObject)
  },
  delItem(id) {
   this.$store.dispatch('del_item',id)
  }
}

利用action派發(fā)mutation事件,實現(xiàn)增加和刪除的操作

這里有一個很重要的概念: mutation是唯一修改state的方法,而action是操作mutation觸發(fā)commit修改state的方式

4.使用getters過濾state數(shù)據(jù)

//vuex/index.js
const getters = {
  newBookList:function( state ){
   return JSON.parse(JSON.stringify(state.bookList)).splice(0,1)
  }
}

這樣,我們在組件內(nèi)部這樣輸出

mounted( ) {
  console.log(this.$store.getters.newBookList)
  console.log(this.bookList)
}

我們通過JSON拷貝,既可以得到過濾之后的state數(shù)據(jù)(1條數(shù)據(jù)),也可以得到原state數(shù)據(jù)(4條數(shù)據(jù)),個人理解,getters的作用就在這里

以上這篇Vuex實現(xiàn)數(shù)據(jù)增加和刪除功能就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Vue淺析axios二次封裝與節(jié)流及防抖的實現(xiàn)

    Vue淺析axios二次封裝與節(jié)流及防抖的實現(xiàn)

    axios是基于promise的HTTP庫,可以使用在瀏覽器和node.js中,它不是vue的第三方插件,vue-axios是axios集成到Vue.js的小包裝器,可以像插件一樣安裝使用:Vue.use(VueAxios,?axios),本文給大家介紹axios的二次封裝和節(jié)流與防抖
    2022-08-08
  • 在Vue項目中用fullcalendar制作日程表的示例代碼

    在Vue項目中用fullcalendar制作日程表的示例代碼

    這篇文章主要介紹了在Vue項目中用fullcalendar制作日程表,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Vue Router初始化路由信息詳解

    Vue Router初始化路由信息詳解

    這篇文章主要為大家詳細(xì)介紹了Vue Router初始化路由信息的相關(guān)知識,文中的示例代碼講解詳細(xì),具有一定的借鑒價值,感興趣的小伙伴可以了解一下
    2023-11-11
  • vue基礎(chǔ)之data存儲數(shù)據(jù)及v-for循環(huán)用法示例

    vue基礎(chǔ)之data存儲數(shù)據(jù)及v-for循環(huán)用法示例

    這篇文章主要介紹了vue基礎(chǔ)之data存儲數(shù)據(jù)及v-for循環(huán)用法,結(jié)合實例形式分析了vue.js使用data存儲數(shù)據(jù)、讀取數(shù)據(jù)及v-for遍歷數(shù)據(jù)相關(guān)操作技巧,需要的朋友可以參考下
    2019-03-03
  • 帶你了解前端的幾種包管理器(npm/pnpm等)

    帶你了解前端的幾種包管理器(npm/pnpm等)

    隨著前端工程化的應(yīng)用越來越廣,插件和包的管理也逐漸衍生出很多的管理器,常見的幾種包管理器如:npm、cnpm、yarn、pnpm,那你知道這些管理器之間有哪些區(qū)別嗎?我們一起來逐個認(rèn)識下它們
    2023-04-04
  • vue做網(wǎng)頁開場視頻的實例代碼

    vue做網(wǎng)頁開場視頻的實例代碼

    這篇文章主要介紹了vue做網(wǎng)頁開場視頻的實例代碼,需要的朋友可以參考下
    2017-10-10
  • Vue Promise的axios請求封裝詳解

    Vue Promise的axios請求封裝詳解

    這篇文章主要介紹了Vue Promise的axios請求封裝詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-08
  • Vue中對拿到的數(shù)據(jù)進(jìn)行A-Z排序的實例

    Vue中對拿到的數(shù)據(jù)進(jìn)行A-Z排序的實例

    今天小編就為大家分享一篇Vue中對拿到的數(shù)據(jù)進(jìn)行A-Z排序的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • vue3錨點定位兩種實現(xiàn)方式示例

    vue3錨點定位兩種實現(xiàn)方式示例

    這篇文章主要給大家介紹了關(guān)于vue3錨點定位兩種實現(xiàn)的相關(guān)資料,說到錨點定位,很多人第一時間會想到 a標(biāo)簽,但是a標(biāo)簽實現(xiàn)的錨點定位并不是那么的完美,需要的朋友可以參考下
    2023-07-07
  • vue項目配置env的方法步驟

    vue項目配置env的方法步驟

    在vue項目中env是全局配置文件,可以存儲不同環(huán)境下的變量,下面這篇文章主要給大家介紹了關(guān)于vue項目配置env的方法步驟,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-04-04

最新評論