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

微信公众号怎么做成微网站万网网站发布

微信公众号怎么做成微网站,万网网站发布,中国住房与城乡建设厅网站,网络直播平台11vue3实战-----封装缓存工具 1.背景2.pinia的持久化思路3.以localStorage为例解决问题4.封装缓存工具 1.背景 在上一章节#xff0c;实现登录功能时候#xff0c;当账号密码正确#xff0c;身份验证成功之后#xff0c;把用户信息保存起来#xff0c;是用的pinia。然而p… 11vue3实战-----封装缓存工具 1.背景2.pinia的持久化思路3.以localStorage为例解决问题4.封装缓存工具 1.背景 在上一章节实现登录功能时候当账号密码正确身份验证成功之后把用户信息保存起来是用的pinia。然而pinia一刷新之后内部的数据(比如token)就会消失。为了解决该问题必须将pinia持久化。 2.pinia的持久化思路 常见的解决方法有sessionStorage和localStorage,大家可以根据公司的需求来选择。两种方法都能保证刷新时候pinia内部数据依然存在只不过使用sessionStorage这种方法,当关闭浏览器的会话时候数据会消失。 3.以localStorage为例解决问题 store/login/login.ts import { defineStore } from pinia import { accountLoginRequest } from /service/login/login import type { IAccount } from /types const useLoginStore defineStore(login, {state: () ({id: ,token: localStorage.getItem(token) ?? ,name: }),actions: {async loginAccountAction(account: IAccount) {// 1.账号登录, 获取token等信息const loginResult await accountLoginRequest(account)this.id loginResult.data.idthis.name loginResult.data.namethis.token loginResult.data.token// 2.进行本地缓存localStorage.setItem(token, this.token)}} }) export default useLoginStore以上就可以解决问题。但如果所有的数据都按以上的格式书写代码,比较麻烦。而且,当某些数据是复杂对象时候用localStorage.setItem进行存储时候,需要用JSON.stringify将复杂对象转为字符串(localStorage、sessionStorage只能存储字符串类型的数据)。同时在state里面又需要将其用JSON.parse转回对象。 所以最好是将localStorage进行封装。 4.封装缓存工具 新建工具文件夹utils,新建一个cache.ts文件: utils/cache.ts: //枚举两种类型表示localStorage和sessionStorage enum CacheType {Local,Session }class Cache {//localStorage和sessionStorage都是Storage类型;storage: Storageconstructor(type: CacheType) {this.storage type CacheType.Local ? localStorage : sessionStorage}setCache(key: string, value: any) {if (value) {this.storage.setItem(key, JSON.stringify(value))}}getCache(key: string) {const value this.storage.getItem(key)if (value) {return JSON.parse(value)}}removeCache(key: string) {this.storage.removeItem(key)}clear() {this.storage.clear()} } const localCache new Cache(CacheType.Local) const sessionCache new Cache(CacheType.Session) export { localCache, sessionCache }在store/login/login.ts中使用缓存工具: import { defineStore } from pinia import { accountLoginRequest } from /service/login/login import type { IAccount } from /types import { localCache } from /utils/cache //这里把字符串token换成常量更规范,减少了拼错字符串的可能性所有“login/token”的地方都可以用LOGIN_TOKEN const LOGIN_TOKEN login/token const useLoginStore defineStore(login, {state: () ({id: ,token: localCache.getCache(LOGIN_TOKEN) ?? ,name: }),actions: {async loginAccountAction(account: IAccount) {// 1.账号登录, 获取token等信息const loginResult await accountLoginRequest(account)console.log(loginResult)this.id loginResult.data.idthis.name loginResult.data.namethis.token loginResult.data.token// 2.进行本地缓存localCache.setCache(LOGIN_TOKEN, this.token)}} })export default useLoginStore当然除了自己封装缓存工具,还可以用pinia持久化插件------pinia-plugin-persistedstate解决问题。可上网自行搜索一下。(https://blog.csdn.net/qq_44741577/article/details/135959968)。
http://www.dnsts.com.cn/news/223852.html

相关文章:

  • wordpress调用当前分类列表西安seo优化公司
  • 个人网站建设公司微信软件如何开发
  • 网站高速下载如何做域名及对应网站
  • 衡阳网站开发定制网站开发蒙特
  • 做网站是干嘛的上海网站 备案查询
  • 做招聘网站的需求分析中国菲律宾最新消息
  • 做优惠卷网站倒闭了多少wordpress启动ssl
  • 如何防止网站被采集杭州有做网站
  • 建筑论坛网站软件培训班学费多少
  • 微信公众号建立网站网站 怎么备案
  • 全球网站访问量排名WordPress手机不显示
  • 如何做好公司网站建设中山 网站定制
  • 广告图片网站关键词优化诊断
  • 建设的网站都是怎么赚钱wordpress图片快速主题
  • 有什么好的提供外链网站订单拆单在电商网站建设
  • 新网站推广方法智慧团建官网登录口入口
  • 中国营销网站大全网站建设会计分录
  • 网站建设放电影怎么做wordpress 关键字
  • 淄博高效网站建设找哪家可以拿自己电脑做网站主机
  • 沈阳自助建站软件网站建设学什么的
  • 信阳建网站家纺网站设计
  • 营口电商平台网站建设教育培训 营销型网站系统
  • 网站优化哪里好720云 wordpress
  • 档案网站建设优秀代表中建一局集团有限公司官网
  • 深圳建站公司设计深业集团外贸网站免费建设
  • 网站建设用什么系统推荐好用的分销平台
  • 网站建设做网站好做吗python做网站吗
  • 网站建设的电话销售好做吗北京门头沟山洪暴发
  • 做传销网站后果严重吗瑞安电影城网站建设
  • 深圳网站制作公司招聘免签支付接入wordpress