当前位置: 首页 > news >正文

uni-app 学习笔记:Vuex 持久化数据

Vuex 是专门为 Vue.js 设计的状态管理库,以利用 Vue.js 的细粒度数据响应机制来进行高效的状态更新。

uni-app 支持使用 Vuex 进行全局状态管理,可以将应用程序的共享状态存储在 Vuex 中,以便在整个应用程序中进行共享和访问。

Vuex 的数据持久化

uni-app 内置了 Vuex ,所以我们只需按照规则创建调用即可:

1.在项目根目录下创建文件夹 store ,并在此目录下新建 index.js 文件

import {createStore
} from 'vuex';export default createStore({state: {loggedIn: uni.getStorageSync('isLogged') || false,userinfo: uni.getStorageSync('userinfo')},mutations: {setLogin(state, userData) {state.loggedIn = truestate.userinfo = userDatauni.setStorageSync('isLogged', true)uni.setStorageSync('userinfo', userData)},logout(state) {state.loggedIn = falsestate.userinfo = nulluni.removeStorageSync('isLogged')uni.removeStorageSync('userinfo')}},actions: {}
});

2.在 main.js 中导入文件。

import App from './App'
import {httpRequest
} from './request/request.js'
import store from './store/index.js' // 页面路径// #ifndef VUE3
import Vue from 'vue'
import './uni.promisify.adaptor'
Vue.config.productionTip = false
Vue.prototype.$httpRequest = httpRequest
Vue.prototype.$store = store // 配置仓库(store)
App.mpType = 'app'
const app = new Vue({...App
})
app.$mount()
// #endif// #ifdef VUE3
import {createSSRApp
} from 'vue'
export function createApp() {const app = createSSRApp(App)app.use(store) // 使用仓库(store)return {app}
}
// #endif

获取 state ,通过 this.$store 访问到 state 里的数据。

// 获取存在本地的用户登录状态
console.log(this.$store.state.loggedIn)

修改登录状态:

this.$store.commit('setLogin', {'id': '1','nickname': '张三'});

Vuex 中 store 数据改变的唯一方法就是 mutation this.$store.commit 是 Vuex 提供的方法,用于提交一个 mutation

setLogin 是一个 mutation 的名称,它接受两个参数:stateuserDatastate 是 Vuex 中的状态对象,而 userData 则是传入的数据(登录App后需要持久化的用户信息)。在页面中调用了名为 setLogin mutation ,并传入了 {'id': '1', 'nickname': '张三'} 作为参数存储。这样就完成了将数据存储到 Vuex 的 store 中的操作。


文章转载自:
http://ampliation.wsgyq.cn
http://astrand.wsgyq.cn
http://biociation.wsgyq.cn
http://balpa.wsgyq.cn
http://cassiterite.wsgyq.cn
http://belsen.wsgyq.cn
http://certificate.wsgyq.cn
http://antineuritic.wsgyq.cn
http://approach.wsgyq.cn
http://bangzone.wsgyq.cn
http://biomass.wsgyq.cn
http://bahada.wsgyq.cn
http://butazolidin.wsgyq.cn
http://canephoros.wsgyq.cn
http://catv.wsgyq.cn
http://catchwater.wsgyq.cn
http://anticyclonic.wsgyq.cn
http://aquakinetics.wsgyq.cn
http://acoelous.wsgyq.cn
http://andy.wsgyq.cn
http://booze.wsgyq.cn
http://billing.wsgyq.cn
http://absurd.wsgyq.cn
http://atonal.wsgyq.cn
http://angerly.wsgyq.cn
http://abnaki.wsgyq.cn
http://ailanthus.wsgyq.cn
http://changeful.wsgyq.cn
http://asphyxiant.wsgyq.cn
http://antihero.wsgyq.cn
http://www.dtcms.com/a/280691.html

相关文章:

  • 【C++】神奇的AVL树
  • Java单元测试JUnit
  • 使用 Java 获取 PDF 页面信息(页数、尺寸、旋转角度、方向、标签与边框)
  • 已知均数与标准差,如何生成一组正态分布数据?
  • EPLAN 电气制图(九):直流电源绘制+端子排绘制
  • 线程(二) linux 互斥
  • JVM——有哪些常见的垃圾收集器
  • Props
  • 时序数据库与AI的融合:智能时代的数据基石
  • 027_国际化与本地化
  • Spring应用抛出NoHandlerFoundException、全局异常处理、日志级别
  • FreeRTOS学习笔记——移植说明、任务创建
  • 【Ubuntu22.04】repo安装方法
  • Linux715 磁盘管理:逻辑卷
  • 聊聊MySQL中的buffer pool
  • Spring Boot目录变文件夹?3步解决!
  • Unity Editor下拉框,支持搜索,多层级
  • BGP服务器和多线服务器的不同之处
  • Python初学者笔记第十三期 -- (常用内置函数)
  • 原点安全签约金网络数科,共建一体化数据安全防护体系
  • Docker 镜像(Image)常用命令总结
  • ASP .NET Core 8结合JWT轻松实现身份验证和授权
  • CMake基础:覆盖项目开发的五大配套工具
  • LLM面试题及讲解 4
  • VSCode同时支持Vue2和Vue3开发的插件指南
  • 【编程】-环形缓冲区
  • 安全参綉25暑假第一次作业
  • 超详细 anji-captcha滑块验证uniapp微信小程序前端组件
  • 备忘录设计模式
  • asyncio 与 uvloop