美文网首页
vuex之代码抽离

vuex之代码抽离

作者: 苏码码 | 来源:发表于2018-10-31 18:34 被阅读0次

根据上篇文章的例子,进行代码抽离,
1、分别创建getters.js,mutations.js文件,并在store.js文件中引入

import * as mutations from "./mutations"
import * as getters from "./getters"

2、抽离之后的store.js

import Vue from 'vue'
import Vuex from 'vuex'
import * as mutations from "./mutations"
import * as getters from "./getters"

Vue.use(Vuex)

export const store = new Vuex.Store({
    // 单一状态树 设置属性
    state:{
        // 商品数组
        goodsList:[]
    },
    // 获取属性
    getters,
    // 改变数据状态
    mutations
})

3、getters.js文件

// 获取商品列表
export const getterGoodsList = (state) =>{
    return state.goodsList;
}
// 获取所有商品的总价
export const getterGoodsTotalPrice = (state) => {
    var total = 0
    for (const key in state.goodsList) {
        if (state.goodsList.hasOwnProperty(key)) {
            const element = state.goodsList[key];
            total = total + parseFloat(element.total)
        }
    }
    return total
}

4、mutations.js文件

// 将新的商品添加到商品数组
export const addGoodsToGoodsList = (state,goods) => {
    state.goodsList.splice(0,0,goods);
}
 // 修改选中商品的数量
 export const changeGoodsCount = (state,payload) => {
    state.goodsList.forEach(element => {
        if (element.goodsId == payload.goodsId) {
            element.count = parseInt(element.count) + parseInt(payload.count);
            element.total = parseInt(element.count) * parseFloat(element.price);
        }
    })
}
// 根据商品id删除选中的商品
export const deleteGoodsToGoodsList = (state,item) =>{
   state.goodsList.splice(state.goodsList.indexOf(item),1)
}

具体代码详见:https://github.com/zzsuyifeng/vuexDemo/tree/separate

相关文章

  • vuex之代码抽离

    根据上篇文章的例子,进行代码抽离,1、分别创建getters.js,mutations.js文件,并在store....

  • 2018-11-06-day03-规格与模板管理-1

    1.brand.html抽离出service层: 目的: 不同的控制层可以重复的调用服务层的代码,将代码抽离出来重...

  • Chapter 2:光速上手vuex

    继续上一篇的vuex上手,我们完成了父组件和子组件A、子组件B。那么我们接下来就要将数据抽离出来,放到vuex中实...

  • 工厂模式

    简单工厂 工厂方法 工厂方法跟简单工厂的组合 总结 简单工厂把对象的创建过程抽离出来 把独立的代码块抽离出来让代码...

  • Vuex-store各模块抽离封装

    1.state的抽离:新建state.js文件 2.mutations的抽离: 新建一个mutations.js:...

  • 11-webpack4.x 提取公共代码

    当一部分代码需要反复被用到,反复请求浪费资源,将公共代码 抽离,需要时读取缓存即可 先上图: 1-抽离脚本的公共代...

  • 三(2)、样式处理优化 ------ 2020-07-05

    1、抽离样式文件 2、添加厂商前缀 3、压缩CSS代码:

  • flowable流程设计器整合,整合mybatis-plus,从

    业务场景:之前文章讲了如何从github官方代码中抽离流程设计器《flowable 流程设计器 抽离,及源码改造原...

  • vuex学习/vue组件

    代码管理 每天早上更新一下代码git pull vuex的学习 vuex的了解Vuex是一个专门为vue.js应用...

  • Vuex部分问题

    Vuex问题 1、提示 [vuex] unknown mutation type: 问题代码 //使用store....

网友评论

      本文标题:vuex之代码抽离

      本文链接:https://www.haomeiwen.com/subject/kntztqtx.html