vue3使用vuex
记录一下防忘
创建store.js如下
import { createStore } from 'vuex' const store = createStore({ namespaced: true, state() { return { token: null, isLogin: false, userinfo: {}, } }, mutations: { setUserInfo(state, userinfo) { state.userinfo = userinfo; }, setToken(state, token) { state.token = token; state.isLogin = true; }, }, actions: { setToken(store, newToken) { store.commit("setToken", newToken); }, setUserInfo(store,userinfo) { store.commit("setUserInfo",userinfo) }, } }) export default store
然后在main.js引入->挂载
import stores from "@/request/store.js";//引入 const store = stores
//一些代码...
const app = createApp(App).use(store);//挂载到app
//一些代码...
以上步骤完成之后可以直接在其他页面上面调用
this.$store
1.在其他页面获取vuex中的数据
this.$store.state.xxx
xxx就是在store.js中state预定的数据键名,如 : this.$store.state.token 可以获取到当前vuex中存储的token的值
2.在其他页面修改vuex中的数据
在store.js中,存在mutation和action,我的理解是:在页面中使用action方法,让action方法去触发mutation方法,达到修改vuex中储存的数据的目的;
比如要修改vuex中储存的userinfo的值,在页面中使用分发
this.$store.dispatch('setUserinfo',this.userinfo)
触发了store.js中的action中的setUsetInfo,在这个方法中又commit到了mutation中的setUsetInfo,从而修改了vuex中存储的userinfo的值(不知道这么理解对不对)
3.如何在页面上监听vuex中数据的变化
可以直接在watch中监听
watch: { "$store.state.userinfo": function(val) { this.userinfo = val console.log(val) }, }
技术最菜,头发最少
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
2019-05-21 一次基于老古董thinkPHP3.1的修改尝试