mapActions

42 篇文章 0 订阅

1:先创建一个文件夹

首先我们要新建一个store文件夹,里面自定义一个index.js的文件,如果项目过大可再加一个modules文件夹下面写js文件

我们在写vuex的时候 先从外再到内,比如说 如果你想吃饭,我们就先拿个碗再去盛饭,下面开始展示代码,在user.js中

export default {
    state: { //定义数据
        userInfo: []
    },
    getters: {},
    mutations: { //定义方法
        AddshopInfo(state, value) {
            state.userInfo .push( value );
        }
    },
    actions: { //异步触发mutations里的方法
        AddshopInfoAsync(context, value) {
            context.commit('AddshopInfo', value) //异步触发
        }
    },
    modules: {},
    namespaced: true, // 命名空间
 
}

在store下的index.js 里面 引入 module文件夹下的 index.js ,

引入完成 ,挂载到 modules 属性下面

import Vue from 'vue'
import Vuex from 'vuex'
 
import createPersistedState from 'vuex-persistedstate'
import shop from "./modules/index.js"
Vue.use(Vuex)
 
export default new Vuex.Store({
    //将引入的模块 挂载到 modules属性内
    modules: {
        shop
    },
    plugins: [
        createPersistedState({
            // 存储方式:localStorage、sessionStorage、cookies
            storage: window.sessionStorage,
            // 存储的 key 的key值
            key: "shopCar",
        })
    ]
})

localStorage:可长期存储数据,除非用户清楚localStorage信息,否则数据会一直存在。同一中浏览器之间,不同页面,数据可以共享。

sessionStorage:短期存储数据,用户关闭标签页后或直接关闭浏览器后数据会清空。同一浏览器不同页面之间,数据不可共享

使用方法相同。

使用的方法如下:

先在你需要的地方 引入 mapActions 和 mapState

import {mapActions,mapState} from "vuex"
 在 methods 方法中
...mapActions('shop',["AddshopInfoAsync"]),
 shop 是存储的名字
"AddshopInfoAsync" 是方法的名字
异步触发方法 然后穿参数到user.js 中
 // 调用 vuex 异步触发方法 传参
               this.AddshopInfoAsync(...)
在 computed方法中    
...mapState("shop",["userInfo"])

先在 获取到了 userInfo中的数据了 ,可以对 userInfo 里面的数据 修改,添加等

可以在页面中修改等操作, 也可以调用这个值,渲染值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值