Vue入门七(Vuex的使用|Vue-router|LocalStorage与SessionStorage和cookie的使用)

news2024/11/15 8:39:07

文章目录

  • 一、Vuex
    • 1)理解vuex
    • 2)优点
    • 3)何时使用?
    • 4)使用步骤
      • ① 安装vuex
      • ② 注册vuex
      • ③ 引用vuex
      • ④ 创建仓库Store
      • 五个模块介绍
    • 5)基本使用
  • 二、Vue-router
  • 三、LocalStorage与SessionStorage、cookie的使用

一、Vuex

1)理解vuex

Vuex是一个专为Vue.js应用程序开发的状态管理系统+库。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化

解读

在Vue中实现集中式状态(数据)管理的一个Vue插件,对vue应用中多个组件的共享状态进行集中式的管理(读/写),也是一种组件间通信的方式,且适用于任意组件间通信。

2)优点

Vuex状态管理跟使用传统全局变量的不同之处:

  • Vuex的状态存储是响应式的: 就是当你的组件使用到了这个 Vuex
    的状态,一旦它改变了,所有关联的组件都会自动更新相对应的数据,这样开发者省事很多。

  • 不能直接修改Vuex的状态: 如果是个全局对象变量,要修改很容易,但是在 Vuex 中不能这样做,想修改就得使用 Vuex。提供的唯一途径:显示地提交(commint)mutations来实现修改。这样做的好处就是方便我们跟踪每一个状态的变化,在开发过程中调试的时候,非常实用。

3)何时使用?

当你无法很好的进行数据管理的时候,多个组件需要共享数据时,你就需要用Vuex,即:

  1. 多个组件依赖于同一状态
  2. 来自不同组件的行为需要变更为同一状态

Vuex 背后的基本思想.
在这里插入图片描述
进行注解
在这里插入图片描述


4)使用步骤

因为我是通过命令创建vue项目的,当时已经选配好了,所以下面前四个步骤都不用自己配置

① 安装vuex

	npm install vuex --save

② 注册vuex

在main.js中注册

	import Vue from 'vue'
	import App from './App.vue'
	import store from './store'
	
	Vue.config.productionTip = false
	
	new Vue({
	  store,
	  render: h => h(App)
	}).$mount('#app')

③ 引用vuex

在store/index.js中引入

	import Vue from 'vue'  		//引入Vue核心库
	import Vuex from 'vuex'		//引入Vuex
	Vue.use(Vuex)				//应用Vuex插件

④ 创建仓库Store

要使用 Vuex,我们要创建一个实例 store,我们称之为仓库,利用这个仓库 store 来对我们的状态进行管理。

	//创建一个 store
	export default new Vuex.Store({
		state:{
		   //存放状态
		},
		getters:{
		  //state的计算属性
		},
		mutations: {
		 //更改state中状态的逻辑,同步操作
		},
		actions: {
		  //提交mutation,异步操作
		},
		//如果将store分成一个个的模块的话,则需要用到modules.
		//然后在每一个module中的state,getters,mutations,actions等
		modules: {
		 a: moduleA,
		 b: moduleB,
		 //...
		}
	})

五个模块介绍

  • State:定义了应用状态的数据结构,可以在这里设置默认的初始状态。
  • Getter:允许组件从 store 中获取数据,mapGetters 辅助函数仅仅是将 store 中的 getter映射到局部计算属性(state的计算属性)。
  • Mutation:是唯一更改 store 中状态的方法,且必须是同步函数。
  • Action:用于提交 mutation,而不是直接变更状态,可以包含任意异步操作。
  • Module:可以将 store 分割成模块(module)。每个模块拥有自己的state、mutation、action、getter、甚至是嵌套子模块(将store模块化)

5)基本使用

用一个

二、Vue-router

三、LocalStorage与SessionStorage、cookie的使用

	浏览器可以存数据
		1.cookie中:有过期时间,一旦过期,就会清理掉
		2.localStorage中:永久有效,即便浏览器重启也有效,只能手动或代码删除
		3.sessionStorage中:当次有效,关闭浏览器,就清理掉了
	<template>
	  <div>
	    <h1>localStorage的使用</h1>
	    <button @click="saveLocalStorage">写入数据</button>&nbsp;&nbsp;
	    <button @click="getLocalStorage">获取数据</button>&nbsp;&nbsp;
	    <button @click="delLocalStorage">删除数据</button>
	    <hr>
	    
	    <h1>sessionStorage的使用</h1>
	    <button @click="saveSessionStorage">写入数据</button>&nbsp;&nbsp;
	    <button @click="getSessionStorage">获取数据</button>&nbsp;&nbsp;
	    <button @click="delSessionStorage">删除数据</button>
	    <hr>
	    
	    <h1>cookies的使用---使用第三方vue-cookies</h1>
	    '需先安装cnpm install vue-cookies -S'
	    <button @click="saveCookie">写入数据</button>&nbsp;&nbsp;
	    <button @click="getCookie">获取数据</button>&nbsp;&nbsp;
	    <button @click="delCookie">删除数据</button>
	    <hr>
	  </div>
	</template>

	<script>
		import cookie from 'vue-cookies'  //cookies需要安装第三方,导入后使用
		export default {
		  name:'IndexView',
		  methods:{
		    saveLocalStorage(){
		      localStorage.setItem('name','xxx')
		    },
		    getLocalStorage(){
		      console.log(localStorage.getItem('name'))
		    },
		    delLocalStorage(){
		      //localStorage.clear() //清空所有的localStorage数据
		      localStorage.removeItem('name') //指定清除
		    },
		    
		    saveSessionStorage(){
		      sessionStorage.setItem('name','xxx')
		    },
		    getSessionStorage(){
		      console.log(sessionStorage.getItem('name'))
		    },
		    delSessionStorage(){
		      sessionStorage.removeItem('name') //同localStorage一样指定清除
		    },
		    
		    saveCookie(){
		      cookie.set('name','xxx','7d')  //按天算
		    },
		    getCookie(){
		      console.log(cookie.get('name'))
		    },
		    delCookie(){
		      cookie.remove('name')
		    },
		  }
		}
	</script>

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1387850.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

漏洞复现-金和OA jc6/servlet/Upload接口任意文件上传漏洞(附漏洞检测脚本)

免责声明 文章中涉及的漏洞均已修复&#xff0c;敏感信息均已做打码处理&#xff0c;文章仅做经验分享用途&#xff0c;切勿当真&#xff0c;未授权的攻击属于非法行为&#xff01;文章中敏感信息均已做多层打马处理。传播、利用本文章所提供的信息而造成的任何直接或者间接的…

python统计分析——生成正态分布随机数

参考资料&#xff1a;用python动手学统计学&#xff0c;帮助文档 方法1&#xff1a;scipy.stats.norm.rvs() from scipy import stats stats.norm.rvs(loc4,scale0.8,size10) 参数介绍如下&#xff1a; loc&#xff1a;表示正态分布的均值&#xff0c;默认为0 scale&#…

WinSCP传文件到Ubuntu提示Permission denied

使用WinSCP传文件到一台Ubuntu服务器时&#xff0c;提示Permission denied。 客户端&#xff1a;Windows 10 服务器&#xff1a;hyper-V虚拟机 Ubuntu 20.04 WinSCP版本&#xff1a;WinSCP 6.1 文章目录 WinSCP工具介绍WinSCP开源免费WinSCP优点 Permission denied 解决方法scp…

机器学习——主成成分分析PCA

如上图所示&#xff0c;一共有4个属性&#xff0c;身高&#xff08; m为单位&#xff09;&#xff0c;身高&#xff08;cm&#xff09;,时速&#xff08;每小时公里&#xff09;&#xff0c;时速&#xff08;每小时里&#xff09;&#xff0c;身高的两个属性是相关的&#xff0…

bee工具的使用及创建第一个项目

前提文章&#xff1a;beego的安装及配置参数说明-CSDN博客 提示&#xff1a;beego框架下项目需要再GOPATH/src下进行开发&#xff0c;我的GOPATH是C:\Users\leell\go web项目创建 通过 bee new 创建web项目 C:\Users\leell\go\src>bee new beego-web 2024/01/15 21:40:0…

文心一言 vs. ChatGPT:哪个更胜一筹?

文心一言 vs. ChatGPT&#xff1a;从简洁美到深度思考的文本生成之旅 近年来&#xff0c;文本生成工具的崛起使得人们在表达和沟通方面拥有了更多的选择。在这个领域中&#xff0c;文心一言和ChatGPT作为两个备受瞩目的工具&#xff0c;各自以独特的优势展现在用户面前。本文将…

深度系统QT 环境搭建

1.QT安装 不折腾最新版直接去商店搜索QT安装。 2.修改su密码&#xff0c;安装需要权限 打开一个终端&#xff0c;然后输入下面的命令&#xff1a;按照提示输入密码按回车就行。 sudo passwd 回车后会出现让你输入现在这个账户的密码&#xff1a; 3.编译环境安装。 安…

[链路层] 点对点协议 PPP

目录 1、PPP协议的特点 2、PPP协议的组成和帧格式 3、PPP协议的工作状态 目前使用得最广泛的数据链路层协议是点对点协议PPP(Point-to-Point Protocol)。 1、PPP协议的特点 我们知道&#xff0c;互联网用户通常都要连接到某个 ISP 才能接入到互联网。PPP 协议就是用户计算机…

系统架构11 - 数据库基础(上)

数据库基础 数据库基本概念概述三级模式、两级映像概念模式外模式内模式二级映像逻辑独立性物理独立性 数据库设计需求分析概念结构设计逻辑结构设计物理设计数据库实施阶段据库运行和维护阶段 数据模型E-R模型关系模型模型转换E-R图的联系 关系代数 数据库基本概念 概述 数据…

Linux Mii management/mdio子系统分析之五 PHY状态机分析及其与net_device的关联

&#xff08;转载&#xff09;原文链接&#xff1a;https://blog.csdn.net/u014044624/article/details/123303714 前面几章基本上完成了mdio模块驱动模型的分析&#xff0c;本篇文章主要讲述phy device的状态机以及phy device与net_device的关联。Phy device主要是对phy的抽象…

CCPC 2023 北京市赛 G.【模板】线段树(线段树区间合并20次多项式)

题目 思路来源 lyw 题解 洛谷高仿题目P4247 (aix)(aix)(aix)注意到当x有超过20项时&#xff0c;20个2相乘&#xff0c;对2的20次方取模就为0 所以&#xff0c;维护0次项到19次项乘积的和&#xff0c;向上合并时&#xff0c;是两个多项式卷积&#xff0c;这里暴力相乘即可 …

AI教我学编程之C#类的基本概念(2)

前言 AI教我学编程之C#类的基本概念&#xff08;2&#xff09; 已经更新&#xff0c;欢迎道友们前往阅读&#xff0c;本节我们继续学习C#类的基本概念 目录 上节回顾 质疑 对话AI 特殊情况 发问 解释 数据/函数成员 类和程序–实现一个简单的程序 实现尝试 声明类 类的成员…

如何判断售卖的医疗器械产品是二类还是三类

售卖医疗器械需关注产品本身是否为一、二、三类医疗器械。第一类医疗器械为一般项目的经营范围无需取得备案或许可证即可销售。第二类医疗器械产品需办理第二类医疗器械的备案方可销售。第三类医疗器械需取得医疗器械经营许可证且许可证上的经营范围需与销售的产品对应方可销售…

漏洞复现-Yearning front 任意文件读取漏洞(附漏洞检测脚本)

免责声明 文章中涉及的漏洞均已修复&#xff0c;敏感信息均已做打码处理&#xff0c;文章仅做经验分享用途&#xff0c;切勿当真&#xff0c;未授权的攻击属于非法行为&#xff01;文章中敏感信息均已做多层打马处理。传播、利用本文章所提供的信息而造成的任何直接或者间接的…

关于 Error: Cannot find module ‘webpack/lib/RuleSet‘ 的详细解决方法(亲测有效)- 以及删除脚手架的方法

对于出现的这个错误&#xff0c;之前我也尝试了网上的多种解决方案&#xff0c;最终经过测试后&#xff0c;是通过将原来的 vue/cli 版本降级到 4.5.15 版本&#xff0c;最后再重新安装 node_modules 包 才得以解决。 下面是我将介绍怎么安装 4.5.15 版本的脚手架等。 &#x…

运筹说 第65期 | 动态规划的基本概念和基本原理

20世纪50年代初&#xff0c;美国数学家R. Bellman 等人在解决多阶段决策优化问题时提出了一种高效的求解方法——动态规划&#xff08;Dynamic Programming&#xff09;&#xff0c;该方法基于多阶段决策优化问题的特点&#xff0c;把多阶段问题转换为一系列互相联系的单阶段问…

【经典算法】有趣的算法之---遗传算法梳理

every blog every motto: You can do more than you think. 0. 前言 遗传算法是一种基于自然选择和遗传机制的优化算法&#xff0c;因此它通常被用于求解各种最优化问题&#xff0c;例如函数优化、特征选择、图像处理等。 一言以蔽之&#xff1a; 将数学中的优化问题&#xf…

人机协同中存在一个独特的时空体系

一、在人机协同中存在一个独特的时空体系 在人机这个独特的时空体系中&#xff0c;人和机器之间的时间和空间的交织和共同作用。 在时间维度上&#xff0c;人机协同体系中的人和机器具有不同的时间节奏和速度。人类有限的生命周期和有时候需要休息的需求使得他们的工作时间和生…

(2023版)斯坦福CS231n学习笔记:DL与CV教程 (3) | 正则化与最优化

前言 &#x1f4da; 笔记专栏&#xff1a;斯坦福CS231N&#xff1a;面向视觉识别的卷积神经网络&#xff08;23&#xff09;&#x1f517; 课程链接&#xff1a;https://www.bilibili.com/video/BV1xV411R7i5&#x1f4bb; CS231n: 深度学习计算机视觉&#xff08;2017&#xf…

Android 12+ MQTT适配

最终的解决方案是下载源码去改。我用的是已经修改好了的库&#xff0c;如果包名要自己的&#xff0c; 要注意&#xff1a; 1. compileSdk 34 和 targetSdk 34 改成33&#xff08;Android12&#xff09;或者34&#xff08;Android13&#xff09;。 2. 下载的 module 导入。 …