IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> Vuex保持状态和WEBstorage存放信息搭配使用 -> 正文阅读

[JavaScript知识库]Vuex保持状态和WEBstorage存放信息搭配使用

首先,先了解一些Vuex,引入就先不多说了,引入Vuex相信组件库里比我更加全面,下面说一下Vuex常用的几个属性

State:[

属性:存放想要保存的数据

]

Mutations:[

用来使用state的方法 ?(同步)

格式 ?eg: ?

loginOK(state,payload){? #state是上面存储的数据,payload是页面传来的数据

内容

}

]

Actions:[

异步使用方法

]

Actions和mutations的区别就是一个同步,一个异步,为了结构上更加合理

-------------------------------------------------------------------------------------------------

下面来说一些如何使用这些数据:

/*提交vuex,更新信息*/

这是在需要保存的页面写的代码

This.$store.commit(‘mutations里的方法’,赋值)

这是在vuex里面写的:

State.(里面的数据属性名)? ??#调取state里的数据

-----------------------------------------

相信很多小伙伴都会想

为什么已经用Vuex持久化了,为什么还要用WEBstorage呢?

因为Vuex在刷新将丢失数据??

而html更新后自带的功能更加强大,更符合我们的项目需求

webStorage提供了两块存储空间(他们都是key:value存储结构):

LocalStorage 永久存储。只要用户不清楚浏览器缓存,永久有效。

SessionStorage 单会话存储。若用户重启浏览器,则数据销毁。刷新并不会销毁存储在sessionStorage里的数据。

如果想一直保存数据,需要vuex搭配webstorage?? ,根据需求选择loacl或者session

那么我们该如何调用使用呢?

这里拿Sessionstorage举例子,如果用的Localstorage,直接替换就行

查:

Sessionstorage.getItem(‘state里面的属性’)

改:

Sessionstorage.setItem(‘state里面的属性’,赋值)

删:

Sessionstorage.removeItem(‘state里面的属性’)

清除数据:

Sessionstorage.clear()

有一点要注意的是,存储数据要不能存对象,如果需要,需要转字符串 ?eg:

let ls = window.localStorage

let ss = window.sessionStorage

ls.setItem('islogin', 'true')

ss.setItem('username', 'zs')

//? 若存储对象

let user = {name: 'zs', age: 15, gender: '男'}

sessionStorage.setItem('user', JSON.stringify(user))

---------------------------------------------

大家看了这么久,相信对于原理和使用方法已经有了一定的了解,下面直接上代码,方便大家更轻松的掌握? 下面是一个简易的登陆保持 一个vuex,一个index首页(用到保持的信息),一个login登录页(提交需要保存的信息)

Vuex:

? state: {

? ? islogin:sessionStorage.getItem('islogin'), ?//用于存储当前用户是否已登陆

? ? username:sessionStorage.getItem('username'), ? ?//存储当前用户名

? },

? mutations: {

? ? // 提供一个方法,登陆成功后修改state属性

? ? loginok(state,payload){

? ? ? state.islogin=true ? //修改登录状态

? ? ? state.username=payload ? ?//修改登陆用户信息

? ? ? //还需要将状态信息,存入sessionStorage

? ? ? sessionStorage.setItem('islogin',true)

? ? ? sessionStorage.setItem('username',payload)

? ? },

?Login.vue:登录页

? ?<script>

?if(this.checkName() && this.checkPwd()){

? ? ? ?console.log('登陆成功');

? ? ? ?this.axios.post('/login',

? ? ? ? ?`username=${this.name}&password=${this.pwd}`)

? ? ? ? ?.then(

? ? ? ? ? ?res=>{

? ? ? ? ? ? ?if(res.data.code==200){

? ? ? ? ? ? ? ? ? // 提交vuex,更新用户信息

? ? ? ? ? ? ? ? ?this.$store.commit('loginok',this.name)? //此处的this.name就是payload

? ? ? ? ? ? ? // ?弹窗跳转

? ? ? ? ? ? ? ?this.$toast('登陆成功')

? ? ? ? ? ? ? ?this.$router.push('/')

? ? ? ? ? ? ?}else{

? ? ? ? ? ? ? ?this.$messagebox({

? ? ? ? ? ? ? ? ?title:'提示',

? ? ? ? ? ? ? ? ?message:"账号密码输入错误"

? ? ? ? ? ? ? ?})

}

</script>

Index.vue:

<div slot="right" v-if="$store.state.islogin">

? ? ? ? 欢迎:{{$store.state.username}}

? ? ? </div>

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-02-16 12:59:54  更:2022-02-16 13:00:34 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 10:26:34-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码