6_登录与初始化vuex
2025/3/24...大约 1 分钟
初始化 vuex
页面数据需要在多一个页面中共享是需要引入 vuex
在 store 目录上鼠标右键,选择 新增 -> js文件
, 新建 store.js
文件
在 store.js
按照如下 4 个步骤初始化 Store 的实例对象:
// 1. 导入 Vue 和 Vuex
import Vue from 'vue'
import Vuex from 'vuex'
import moduleUser from '@/store/user.js'
// 2. 将 Vuex 安装为 Vue 的插件
Vue.use(Vuex)
// 3. 创建 Store 的实例对象
const store = new Vuex.Store({
modules: {
// 挂载用户信息 vuex 模块,模块内成员访路径调整为 m_user
'm_user': moduleUser
}
})
// 4. 向外共享 Store 的实例对象
export default store
在 main.js
中导入 store 实例对象并挂载到 Vue 的实例上:
import store from './store/store.js'
const app = new Vue({
...App,
store
})
user.js
创建存储和操作方法
export default {
// 开启命名空间
namespaced: true,
// 数据,定义信息对象
state: () => ({
token: '',
userInfo: JSON.parse(uni.getStorageSync('userinfo') || '{}')
}),
// 方法更新
mutations: {
// 更新用户基本信息
updateUserInfo(state, userInfo) {
state.userInfo = userInfo
// 通过 this.commit() 方法,调用 m_user 模块下的 saveUserInfoToStorage 方法,将 userinfo 对象持久化到本地
this.commit('m_user/saveUserInfoToStorage')
},
// 将 userinfo 持久化存储到本地
saveUserInfoToStorage(state) {
uni.setStorageSync('userinfo', JSON.stringify(state.userInfo))
}
},
getters: {}
}
使用,在 my-login.vue 中,获取完用户信息成功后调用更新