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

taro+pinia+小程序存储配置持久化

主要通过taro的getStorageSync,setStorageSync实现配置持久化

// https://pinia.esm.dev/introduction.html
import { defineStore } from 'pinia';
import { CreditCardDateUtils } from '@/untils/compute';
import { getStorageSync, setStorageSync } from "@tarojs/taro";interface dataType {id: string,name: string,statementDay: number,//出账日dueDay: number,//还款日dueDate?: string,//还款日freeDay?: number,//免息天数currentFreeDay: number,//剩余免息天数isCurrentCycle: boolean,//是否本周期
}export const useCardStore = defineStore('card', {state: () => {return {_cardData: <dataType[]>[],};},getters: {getCardInfo: state => {return (id: string) => state._cardData.find((item) => (item.id === id));},getCardDataList: state => {return () => state._cardData;},getIndexCardDataList: state => {const dataList = state._cardData.map((item) => {const creditCardUtils = new CreditCardDateUtils(Number(item.statementDay), Number(item.dueDay));item.freeDay = creditCardUtils.calculateMonthlyGracePeriod();item.currentFreeDay = creditCardUtils.calculateGracePeriodDays();const { dueDate, isCurrentCycle } = creditCardUtils.getCreditCardDueDate();item.dueDate = dueDate.toLocaleDateString();item.isCurrentCycle = isCurrentCycle;return item;}).sort((a, b) => {// 1. 当前周期的卡片优先if (a.isCurrentCycle && !b.isCurrentCycle) return -1;if (!a.isCurrentCycle && b.isCurrentCycle) return 1;// 2. 同一周期内按剩余免息天数降序排列return b.currentFreeDay - a.currentFreeDay;});console.log(dataList, 'dataList')return () => dataList;}},actions: {delCardData(id: string) {this._cardData = this._cardData.filter((item) => item.id !== id);console.log(id);console.log(this._cardData);},setCardData(cardData: dataType) {const index = this._cardData.findIndex((item: dataType) => item.id == cardData.id);console.log(this._cardData, 'this._cardData');console.log(cardData, 'cardData');console.log(index, 'index');if (index <= -1) {this._cardData.push(cardData);} else {this._cardData[index] = cardData;}},},// persist: true,// 配置持久化persist: {// 调整为兼容多端的APIstorage: {setItem(key, value) {setStorageSync(key, value) // [!code warning]},getItem(key) {return getStorageSync(key) // [!code warning]}},}
})
http://www.dtcms.com/a/290032.html

相关文章:

  • 健身管理小程序|基于微信开发健身管理小程序的系统设计与实现(源码+数据库+文档)
  • 【Unity基础】Unity中2D和3D项目开发流程对比
  • uni-app开发小程序,根据图片提取主题色值
  • 跑腿小程序|基于微信小程序的跑腿平台小程序设计与实现(源码+数据库+文档)
  • 表单属性总结
  • 常见算法——查找与排序
  • LeafletJS 主题与样式:打造个性化地图
  • 【高精度 带权并集查找 唯一分解定理】 P4079 [SDOI2016] 齿轮|省选-
  • 在血研所(SIH)恢复重建誓师大会上的讲话(by血研所创始所长王振义院士)
  • Stream流-Java
  • 用Dify构建气象智能体:从0到1搭建AI工作流实战指南
  • Redis学习-06渐进式遍历
  • Jmeter工作界面介绍
  • Three.js实现银河流光粒子星空特效原理与实践
  • 图论基本算法
  • 【前端】corepack包管理器版本管理工具的介绍与使用
  • Spring Boot 3企业级架构设计:从模块化到高并发实战,9轮技术博弈(含架构演进解析)
  • 在安卓源码中添加自定义jar包
  • 【unitrix】 6.11 二进制数字标准化模块(normalize.rs)
  • vue-pinia
  • 基于WebSocket的安卓眼镜视频流GPU硬解码与OpenCV目标追踪系统实现
  • Vue 脚手架——render函数
  • Django模板系统
  • OpenAI无向量化RAG架构:大模型落地的颠覆性突破
  • 【浓缩版】蓝牙开发概览
  • 板凳-------Mysql cookbook学习 (十二--------3_1)
  • 【Linux】Prometheus 监控 Kafka 集群
  • Spring MVC 核心工作流程
  • 车载电子电器架构 --- MCU信息安全相关措施
  • docker 软件bug 误导他人 笔记