温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

使用Vuex怎么实现一个数据增加和删除功能

发布时间:2021-05-12 17:56:24 来源:亿速云 阅读:580 作者:Leah 栏目:web开发

今天就跟大家聊聊有关使用Vuex怎么实现一个数据增加和删除功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

1.编写state数据

//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.组件调用state数据进行展示

我们的目的是把state数据赋值给vue组件进行使用,其实,这里有两种常用方法

//Home.vue <p v-for='item in bookList'>{ {item.name} }<p/> //方法一:通过computed的计算属性直接赋值,computed属性可以在输出前,对data中的值进行改变,我们就利用这种特性把state值赋值给vue模板中的data进行使用 computed: {   bookList( ) {    return this.$store.state.bookList;   } } //方法二:通过mapState的对象来赋值 import { mapState } from 'vuex';//首先在组件内引入mapState computed: {   ...mapState(['bookList']) }

方式二是我们经常用到的简写方式

基本的数据获取,就是这样的实现,此时我们看页面,就会循环展示state中的bookList数据

3.利用mutation、action实现增加删除数据

//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派发mutation事件,实现增加和删除的操作

这里有一个很重要的概念: mutation是唯一修改state的方法,而action是操作mutation触发commit修改state的方式

4.使用getters过滤state数据

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

这样,我们在组件内部这样输出

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

看完上述内容,你们对使用Vuex怎么实现一个数据增加和删除功能有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI