在nuxt使用vueX代替storage的方案

nuxt-vuex-localstorage nuxt-vuex-本地存储 通过连接Vuex和Web存储,可以更有效地利用本地存储和会话存储。 与其他持久性插件不同,通过仅分配Vuex的某些特定对象,Web存储可以节省更多空间,并且还可以与现有Vuex用法一起使用。 通过本地存储的数据绑定可以在多个浏览器选项卡中轻松管理。 它具有强大的数据加密功能,因此可提供各种Web存储安全系统。 它提供Web存储不支持的“ expire”功能。 对于某些不支持Web存储的环境,它支持“ cookie模式”,例如“ Safari私有模式”。 它在电子中效果很好! 自述翻译 링크: : 例子 安装 npm i nuxt-vuex-localstorage 默认(自动)模式 最基本的步骤,其中本地存储被自动加密。 // nuxt.config.js module . exports = { modules : [ 'nuxt 立即下载

使用vuex代替本地缓存storage

今天搬项目时,发现页面中有使用sessionStorage做缓存便于各页面使用,但是搬到nuxt结构下却报错了,查询发现是由于在vue-nuxt中是没办法使用window和document,所以本地缓存也会出问题。因此只能找替代方案,于是想到了vueX(原本项目是没有用的);

参照Nuxt使用Vuex将基础store写完了,结果却发现页面报错了:Classic mode for store/ is deprecated and will be removed in Nuxt 3.没办法继续祭出百度大法,发现是 vuex经典模式写法将在Nuxt 3中删除。在nuxt不需要按照经典模式写了

//经典模式
import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

const store = () => new Vuex.Store({
  state: {
    counter: 0
  },
  mutations: {
    addCounter(state) {
      state.counter++
    }
  }
})

export default store

区别在于:
1、不需要 modules 目录,所有 modules 直接写出 xxx.js 就是模块了。
2、index中不需要 vue.use(vuex) 等模板代码了,全部由 nuxt 完成。
3、action 需要自己写,默认 nuxt会自动配置生成。直接调用即可。

//新版示例
export  const state = () => ({
	userInfo: null,
	token: null,
})

export const getters = {
  getToken(state){
    return state.token
  },
}

export const mutations = {
  set_userInfo(state, userInfo) {
      state.userInfo = userInfo;
  },
  set_token(state, token) {
      state.token = token;
  },
}

export const actions = {
	//do ajax
}

获取更改的方式还是没变

this.$store.state.token;
this.$store.commit('set_token',token);

到这里基本上完成,当我高高兴兴准备继续时,刷新了下页面,数据没了!!!!

nuxt中页面刷新后原来的vueX的数据获取不到了

这样不行,只能继续想办法了,然后通过百度大法还真让我找到了
nuxt中刷新页面后防止store值丢失

按照这个我又开始了我的搬迁大业,结果发现这个值只能在页面彻底加载后才生效
在这里插入图片描述
这样导致我在mouted生命周期里压根没法实现,哦豁,这就很尴尬了。

后面我想了下我要是不加这个判断会怎么样,想到就干,还真成功了

//离开页面 刷新前 将store中的数据存到session
    window.addEventListener('beforeunload', ()=> {
        sessionStorage.setItem("storeCache",JSON.stringify(ctx.store.state))
    });
    //页面加载完成  将session中的store数据
    // window.addEventListener('load', ()=> {
        let storeCache = sessionStorage.getItem("storeCache")
        if(storeCache){
            // 将session中的store数据替换到store中
            ctx.store.replaceState(JSON.parse(storeCache));
        }
    // });

屏蔽掉后我成功在mouted中拿到了值。

搬迁大业不易啊,继续努力!!!

打开新窗口后,数值回归初始值的问题(2021/1/9新增)

这是今天在搬迁代码的时候发现另一个问题,正常情况下页面路由跳转都在同一窗口。但是也有一些另外的情况,比如通过a标签的_blank属性、window.open(url, ‘_blank’);等方式,重新打开一个窗口;这时我发现,我本来的登录状态信息没有了,缓存里也变成了初始值。

经过调试发现跳转重新打开页面时,部分代码不生效了
在这里插入图片描述
因为这部分保存代码有个前提,离开当前页面或者刷新才会生效,但是我是打开了新窗口,原有的窗口是没有任何变化的,也就是说。在我第一次登陆的时候,跳转打开新窗口,此时得到的数据并不会是最新的登陆之后的信息,而会是初始值。

于是想了想能否使用路由守卫进行判断,只要进行了跳转就保存一次,于是我就干了,我想着把js的代码进行更换为路由形式,尝试了几次终于是成功了

export default ( ctx ) => {
	let toU;
	ctx.app.router.afterEach((to, from) => {
		toU = to;
	})
	
	if(toU){
		sessionStorage.setItem("storeCache",JSON.stringify(ctx.store.state))
	}
	
	let storeCache = sessionStorage.getItem("storeCache")
	if(storeCache){
		// 将session中的store数据替换到store中
		ctx.store.replaceState(JSON.parse(storeCache));
	}
}

该方式只是个人项目中能够实现,不保证广泛性,以作参考!

nuxt框架中路由鉴权之Koa和Session的用法 后台管理页面需要有登录系统,所以考虑做一下路由鉴权,这篇文章主要介绍了nuxt框架中路由鉴权之Koa和Session的用法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 立即下载

相关推荐

Camera mipi通信协议

MIPI(移动行业处理器接口),是的缩写。MIPI移动行业处理器接口)是MIPI联盟发起的为移动应用处理器制定的开放标准。分别定义了一系列的手机内部接口标准,比如摄像头接口CSI、显示接口DSI,其中是由MIPI联盟下Camera工作组指定的接口标准。CSI-2是MIPI CSI第二版,主要由应用层、协议层、物理层组成,最大支持4通道数据传输、单线传输速度高达1Gb/s。

arvin_xiong的博客 3730

Nuxt-Storage:简化 Nuxt.js 项目中浏览器存储的操作

Nuxt-Storage:简化 Nuxt.js 项目中浏览器存储的操作 基础介绍 Nuxt-Storage 是一个开源项目,旨在为 Nuxt.js 项目提供一套简单易用的 API 来操作浏览器的存储功能,如 localStorage 和 sessionStorage。该项目主要使用 TypeScript 进行开发,同时也包含一些 JavaScript 代码。 核心功能 Nuxt-Storage 的...

gitblog_00609的博客 445

ads传统功放设计笔记(3)

传统功放设计的流程一般包括以下这些步骤: 1、明确设计目标 2、选择功放管子 3、确定静态工作点 4、设计偏置电路 5、判断稳定性 6、负载与源牵引 7、输入输出阻抗匹配 8、原理图优化 9、大信号仿真 10、版图设计 11、版图联合仿真 12、pcb设计 第二节我们设计仿真了功放的原理图。之后我们需要对版图进行设计和仿真。 10、版图设计 首先将S参数控件都打叉,还要去掉电源、源负载阻抗、地、芯片、电容。在原先电容和芯片的位置加上gap,设置好长度和间隔。之后在电源引脚、输入输出引脚和隔离的两端加上端口。

qq_40995480的博客 6028

NUXT使用Vuex持久化踩坑

Store.state的里面没有数据例如我在login文件下储存了token,可以通过Store.state.login.token获取到,但是Vuex持久化以后Store.state.login.token获取到的是undefined我在生命钩子中mounted里面的获取调用的,解决方法我们给他加个定时器就可以了,但是这样子又有一个问题了,我们在axios请求拦截时虽然可以通过定时器获取但是会影响数据返回,这个时候我们可以在我们之前翻转好的里面让他变成同步操作。这样子就可以获取了。

xianansanye的博客 1343

Pi0 项目复现及项目问题解决方案(全网抢先发布~)

Pi0 项目复现及项目问题解决方案(全网抢先发布~)

m0_68167062的博客 2261

使用python读取卫星测高数据并做相应的处理

5.在python处理结果如下,最大的优点就是比matlab快30-40倍。4.进行粗差的如NaN值,还有进行3倍方差进行对粗差处理。1.首先遍历卫星数据的文件,挨个读取每个数据。有问题,请各位读者及时告知,一起完善内容。3.进行下一步,筛选在研究区域的数据。4.进行按天求平均和按月求平均。2.读取数据主体代码。

爱下去更难! 1133

推荐项目:Nuxt-Storage —— 简化Nuxt.js的存储解决方案

推荐项目:Nuxt-Storage —— 简化Nuxt.js的存储解决方案 项目介绍 在前端开发领域,特别是在Nuxt.js框架下,处理浏览器本地存储(如localStorage和sessionStorage)往往是一件琐碎而复杂的事情。为了解决这一痛点,Nuxt-Storage应运而生。这个精巧的工具库由开发者Irfan Maulana倾力打造,旨在提供一个简单易用的API来简化Nuxt.js项...

gitblog_00098的博客 545

【数据集处理】DroneVehicle数据集处理方法

DroneVehicle数据集由无人机采集的56,878张图像组成,其中一半是RGB图像,其余为红外图像。作者为这五个类别制作了带有定向边界框的丰富注释。

qq_44102942的博客 5046

Nuxt-Storage 使用教程

Nuxt-Storage 使用教程 项目介绍 Nuxt-Storage 是一个用于在 Nuxt.js 项目中轻松读写浏览器存储(如 sessionStorage 和 localStorage)的实用工具包。它提供了一个简单的 API 和一些有用的附加功能,如过期时间设置。 项目快速启动 安装 你可以使用 NPM 或 Yarn 来安装 Nuxt-Storage: # 使用 NPM npm i nux...

gitblog_00048的博客 582

Cursor集成Claude 4.6免费版:本地IDE合规调用指南

大语言模型编程助手(LLM Copilot)已成为现代开发标配,其核心能力依赖于上下文理解、代码推理与结构化输出等关键技术原理。Anthropic官方提供的Claude系列模型,尤其Claude 4.6,凭借200K超长上下文、tool use函数调用和严格可控的API设计,在工程实践中展现出显著技术价值。该能力可无缝嵌入本地IDE环境,支撑代码解释、跨文件分析、单元测试生成等高频开发场景。本文聚焦Cursor这一开源可审计IDE,详解如何合规复用Anthropic免费tier接口(/v1/messages

weixin_34095889的博客 537

CentOS7 内核升级

可在http://ftp.sjtu.edu.cn/sites/elrepo.org/linux/kernel/el7/x86_64/RPMS选择对应架构平台不受影响的内核版本文件下载,然后离线安装,也可通过yum下载包后进行安装。通过 #uname -sr ,可以看到当前的内核版本 Linux 3.10.0-1160.el7.x86_64。首先找台能访问互联网的机器,通过联网的机器进行内核包下载。lt:longterm的缩写:长期维护版;ml:mainline的缩写:最新稳定版;

Jian Sun_的博客 601

nuxt store中保存localstorage问题

一、如果是用Nuxtjs,请配置插件: plugins:[ {src:'~/plugins/localstorage.js",ssr:false } ] 然后,在localStorage,js中: import createpersistedstate from "vuex-persistedstate'; impont * as Cookies from "js-cookie"; let cookiestorage ={ getItem: function(key){ return Cookie

qq_41293573的博客 4754

YOLO11实战优化:长尾分布解决 | 引入Seesaw Loss配合YOLO11分类头,完美应对类别极其不平衡的现实业务场景

摘要: YOLO11在工业缺陷检测等长尾分布场景中面临尾部类别检测失效的问题,根源在于头部类别样本的负样本梯度压制了尾部类别的学习。传统方法如重采样、Focal Loss等效果有限。Seesaw Loss通过动态调整缓解因子和补偿因子,平衡类别间的梯度分布,结合YOLO11的解耦分类头、Anchor-Free设计和C2PSA/C3K2模块,显著提升尾部类别识别能力。文章详细解析了Seesaw Loss的数学原理,并提供了可直接集成到YOLO11的PyTorch实现代码,为长尾分布下的目标检测提供了实用解决方

2601_95807009的博客 253

Nuxt 2 Universal Storage Module 项目推荐

Nuxt 2 Universal Storage Module 项目推荐 Nuxt 2 Universal Storage Module 是一个为 Nuxt.js 提供统一存储解决方案的开源模块,主要使用 TypeScript 和 JavaScript 编写。 1. 项目基础介绍 Nuxt 2 Universal Storage Module 是基于 Nuxt.js 框架的存储模块,它旨在简化在 ...

gitblog_01167的博客 824

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

深入理解vuex-persist:Vuex状态持久化解决方案

vuex-persist是一个专为Vuex设计的插件,它能够将Vuex的状态(state)持久化保存到浏览器的存储机制中,如localStorage、sessionStorage或Cookie等。这个插件特别适合需要保持用户状态的应用场景,比如用户登录状态、应用偏好设置等。 ## 核心特性 1. **自动保存与恢复**:在每次mutation后自动保存状态,并在应用初始化时自动恢复 2. **

gitblog_00508的博客 578

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

误引用vuex-persistedstate导致用户信息无法清除问题

一、问题: 网站使用nuxt框架,使用js-cookie+vuex存储用户信息,在这一篇文章中关于nuxt使用vuex存储以及获取用户信息踩坑,我讲过nuxt是服务端和客户端渲染集成,所以服务端将user信息初始化为空,客户端无法再次初始化,即便客户端的cookie中能获取到用户信息,也无法给user赋值。后来在网上搜索了半天解决办法,引入了vuex-persistedstate,但是引入之后并...

luoyu19940615的博客 3096

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Vuex+localStorage数据状态持久化

前言 在前面文章中,我们详细的讲述了Vuex相关的知识,没有了解的小伙伴可以先去了解一波: 《Vuex是什么?Vuex能做什么?Vuex怎么使用?》 这篇文章主要是讲讲如何使Vuex数据持久化? 顾名思义,浏览器想要数据持久化,必须用到localStorage或者sessionStorage,可能还有不知道这两个东西是干什么的小伙伴,简单的说一下: localStorage和sessionSto...

web秀 1509

Nuxt.js 深入浅出

Nuxt.js是一个基于Vue.js的通用应用框架,提供开箱即用的SSR服务端渲染、文件路由系统和静态站点生成等功能。其核心模块包括: Nitro服务端引擎:实现跨平台SSR渲染、API路由和Serverless部署 文件系统路由:自动生成路由配置,支持动态和嵌套路由 数据获取系统:提供useAsyncData和useFetch等统一数据层API 插件系统:扩展运行时能力,支持全局变量注入 配置系统:通过nuxt.config.ts集中管理所有模块配置 CLI工具:提供项目创建、构建和预览等命令 Nuxt.

青蛙king的博客 1345

Nuxt.js

什么是Nuxt.js Nuxt.js 是一个基于 Vue.js 的通用应用框架。 通过对客户端/服务端基础架构的抽象组织,Nuxt.js 主要关注的是应用的UI渲染。 Nuxt.js 集成了以下组件/框架,用于开发完整而强大的 Web 应用: Vue 2 Vue-Router Vuex(当配置了Vuex 状态树配置项时才会引入) Vue 服务器端渲染 Vue-Met...

cc果冻LXY的博客 396

Vuex状态持久化实战:vuex-persist原理与企业级应用指南

Vuex状态持久化是前端工程中保障用户连续体验的核心能力,其本质是将内存态的响应式状态与浏览器存储机制(如localStorage、sessionStorage)进行可靠协同。原理上需解决序列化失真、写入时机错位、跨tab同步、版本兼容与安全控制等关键问题。技术价值在于统一管理分散的手动存储逻辑,实现模块级策略配置、可测试的持久化行为及平滑升级能力。典型应用场景包括登录态保持、表单草稿自动保存、筛选条件跨页复用及离线数据缓存。本文聚焦Vue 2生态下的事实标准方案vuex-persist,深入解析其生命周期

406

nuxt.js使用教程_如何使用Nuxt.js和Nebulas构建DApp

nuxt.js使用教程There is ever-increasing interest in and demand for Decentralized application (DApp) development. Therefore, I have decided to come up with a tutorial to help you get started with developin...

cumian8165的博客 431

vuex数据状态持久化

vuex可以进行全局的状态管理,但刷新后刷新后数据会消失,这是我们不愿意看到的。怎么解决呢,我们可以结合本地存储做到数据持久化,也可以通过插件-vuex-persistedstate。 1通过 vuex-persistedstate这个插件,来实现将数据存储到本地 npm install vuex-persistedstate 之后使用这个插件在Store中 import createPersi...

hongyanwang 1743

Vue.js和Nuxt.js的跨浏览器存储

Vue.js仓库 (Vue.js Warehouse) A Cross-browser storage for Vue.js and Nuxt.js, with plugins support and easy extensibility based on Store.js. 用于Vue.js和Nuxt.js的跨浏览器存储,具有基于Store.js的插件支持和易扩展性。 This plugi...

cuk5239的博客 407

Nuxt + Firebase 绝配:firebase-module 五分钟快速上手指南,从零接入到第一个 $fire 调用

如果你正在用 Nuxt 2 开发项目,又想快速接入 Google Firebase 的登录、Firestore、云存储等能力,**firebase-module** 就是答案。它只需在 `nuxt.config.js` 里注册一行模块,就能把 `$fire` 全局对象注入项目,让你在组件和 Vuex 中直接调用 `this.$fire.auth`、`this.$fire.firestore` 等服

gitblog_00269的博客 452

Nuxt重构Vue项目实战:Axios配置、Vuetify字体与SSR异常排查

前端工程化演进中,服务端渲染(SSR)已成为提升SEO效果与首屏性能的关键技术方案。Nuxt作为Vue生态中成熟的SSR框架,通过约定式目录结构和内置服务端能力,将路由、状态管理、插件注册等环节标准化,有效降低团队协作成本。然而,将已有Vue项目迁移至Nuxt并非一帆风顺,浏览器对象依赖、第三方库兼容性和请求层配置都暗藏陷阱。Axios根域名需结合运行时配置与环境变量分离内网与公网请求;Vuetify字体可通过覆盖SCSS变量或自托管字体实现;Mavon编辑器等DOM重组件需借助client-only组件或

weixin_34175509的博客 200

Vue迁移Nuxt实战:SSR下的Axios、Vuetify与localStorage排坑指南

服务端渲染(SSR)是提升首屏加载速度与SEO表现的常用方案,Nuxt.js作为Vue应用的同构框架,让组件在Node.js与浏览器双端执行成为可能。然而,这一机制要求开发者重新审视浏览器API的使用边界,避免在服务端直接访问window、document等对象。本文以Vue2老项目迁移到Nuxt为背景,梳理了Axios根域名通过runtimeConfig统一配置、Vuetify字体按需加载、MavonEditor借助client-only组件隔离等工程经验,并提供了localStorage is not

weixin_33896726的博客 335
上一篇: nuxt.js项目创建
下一篇: nuxtjs项目创建后的内容配置
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值