vue3 使用vuex

创建基本的store仓库

index.js

import { createStore } from 'vuex'
import createPersistedState from "vuex-persistedstate";
import user from './modules/user'
import state from "./state"
import mutations from "./mutations"
import getters from "./getters"
import actions from "./actions"

export default createStore({
	plugins: [
		createPersistedState({ storage: window.localStorage }) //配置为sessionStorage,如果不传入对象就是默认
	],

	state,
	mutations,
	actions,
	getters,
	modules: {
		user
	},
})

参考模板链接

模块化开发需要开启命名空间

const user={
namespaced: true,
state:{}
}

以下结构方式 都可以log(store) 具体查看

state

    const vuex_name = computed(() => store.state.name); // 主模块state
    const vuex_user_userName = computed(() => store.state.user.userName); // user模块state

getters

  const vuex_getters_username = computed(() => store.getters.userName);
    const vuex_user_getters_username = computed(
      () => store.getters["user/user_getters_name"]
    );

mutations

// 推荐一
  store.commit("user/setUserInfo", {
        userName: "设置的新名字",
        userId: 789,
      });
// 方式二
const setUserInfo = store._mutations["user/setUserInfo"][0]; 

// 方式三 目前有问题 this有问题 找不到 $store
const { setUserInfo } = mapMutations("user", ["setUserInfo"]); 

actions

// 推荐一
   store.dispatch("user/setUserInfo", {
        userName: "异步设置的新名字",
        userId: 111,
      });

// 方式二
    const asyncSetUserInfo = store._actions["user/setUserInfo"][0];

// 方式三 目前有问题 this有问题 找不到 $store
    const storeActions = mapActions("user", ["setUserInfo"]);
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值