3-3-03-Vuex 插件

Vuex 插件

在学习购物车案例的时候,需要将购物车的信息存储到本地存储 localStorage 中,这个存储操作需要再 cart.js 的每一个 mutations 中都执行一次,所以如果 mutations 太多,这种方法就显得不是很合理,所以这里可以使用 Vuex 中的插件去实现,这样会显得更加合理一些。

  • Vuex 的插件就是一个函数。
  • 这个函数接收一个 store 的参数。

在这个函数里面,我们可以定义一个函数,让它在所有的 mutations 执行结束之后再去执行。

import Vue from 'vue'
import Vuex from 'vuex'
import products from './modules/products'
import cart from './modules/cart'

Vue.use(Vuex)

const myPlugin = store => {
  store.subscribe((mutation, state) => {
    if (mutation.type.startsWith('cart/')) {
      window.localStorage.setItem('cart-products', JSON.stringify(state.cart.cartProducts))
    }
  })
}

export default new Vuex.Store({
  state: {
  },
  mutations: {
  },
  actions: {
  },
  modules: {
    products,
    cart
  },
  plugins: [myPlugin]
})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值