Vue2-黑马(九)

news/2024/5/5 4:06:53/文章来源:https://blog.csdn.net/dengfengling999/article/details/130135510

0目录:

(1)router-动态菜单

(2)vuex-入门

(3)vuex-mapState


(1)router-动态菜单

我们点击按钮跳转到主页面,主页在制作动态菜单,路由的跳转方式有好几种:router-link标签跳转,一种是变成写代码:this.$router.push("/main")  还有一种使用element -ui: 提供的导航菜单来跳转

我们使用编程方式来实现跳转:

 

点击登录:

 主页要显示的菜单数据从哪里来呢?我们在登录的时候已经菜单的数据已经都取到啦,并且呢到存到sessionStorage里面啦,主页在从sessionStorage里面取出来

在ContainView.vue主页:

我们拿到的是一维的数组,不是层级关系的数据,我们可以使用map集合配合两次循环就可以生成:

导航菜单 

 

使用v-for循环:top数组:使用v-for循环循环里面生成的标签必须绑定名字叫key的属性key的值必须唯一

使用v-if和v-else来进行判断生成导航菜单的格式

页面布局使用上左右布局:

 

 

 

 

 

 给第二级菜单加跳转属性,需要给菜单加router属性,再给菜单项加:index:=“”属性:

 

 

 这里出现一个问题,就是菜单全部展开出现滚动条,不好看啦,那么能不能设置同时只打开一个菜单呢?通过加一个属性:unique-opened=“true”属性:设置同时打开的菜单只有一个

 

 

 

(2)vuex-入门

我们有这样一个需求,我们有两个组件,一个是主页组件,一个是文本框组件,我们在文本框修改姓名,修改后显示到主页左上角的的欢迎您的地方:

用以前的办法不好实现,文本框是属于P1组件的他只能跟P1组件的data进行绑定,P1的数据呢没有办法被主页 这边直接访问到,这个时候需要学习一个新的技术叫做vuex

这个问题本来就是数据共享的问题,我们可以给这两个组件找一个能够共享数据的地方一个组件往里面存数据,一个组件往里面取数据:

我们前面也刚学了localStorage和SessionStorage对象可以用来存储数据,可以用来存数据和取数据

成功存入:

 

 

点击获取: 

 P1重新修改名字,主页组件还需要再次点击获取新的数据:

 

有没有发现这种做法不方便,一个组件发生改变,另外一个组件不能立刻意识到数据发生了变化了,我们必须自己盗用一个方法获取到更新的数据,响应的不够及时,我们接下来改变了这一点,当共享数据发生了变化,另外一方能够立刻监听到变化,能够显示出来,我们把这种技术叫做响应式的技术,与之对比SessionStorage就不是响应式的技术

我们当时创建项目的时候,已经选择了vuex了,不用在去npm了,他在store文件夹下的index.js文件

 将来我们要共享数据的话需要子啊state里面加属性name,读取数据可以直接读取,将来想要修改name,不能直接修改,需要在mutations里面加一个方法

在修改组件页面需要拿到 store   this.$store

不能直接调用修改的方法,需要写commit方法间接的调用里面的updateName方法

 

在主页组件:获取数据:使用$store.state.name获取数据,注释掉原来获取数据的代码

 

 P1组件点击修改:就会立刻同步过去

 (3)vuex-mapState

从store获取共享数据,这种写法太麻烦啦,如果多个页面用到共享数据,那么需要写多个这个代码,那么怎么简化呢?我们可以使用之前学的计算属性来简化:computed:

依然获取到共享数据: 

 

 比如还有多个数据需要共享比如说age:

这样写的也有一定的麻烦发现共享属性跟计算属性名字一样,而且里面的代码基本一样,反复去写没有意义,vuex就帮助我们写好啦,它帮助你把计算属性的函数帮你生成好,你直接拿来用就行了,我们直接使用cuex给我们提供好的计算属性的函数

在页面需要引入vuex,导入对应的函数mapState函数,参数是一个数组里面写帮助我们生成 计算属性的名称

 功能正常:修改和获取数据

 还有一个等价的写法:

这个函数返回的是个对象 

...是对对象做一个展开,是展开运算符,把对象里面的内容进行展开结果放在一个新的对象,相当于把对象做了一个浅拷贝复制了一份

 修改共享数据:使我们自己写的,那么vuex也帮助我们写呢?具体做法差不多,先引入vuex,对应的函数mapMutations,

注意它返回的是 一个对象我们还是用展开...运算符展开,这个名字也需要修改,跟store里面的修改方法的额名字一样,他还需要把修改的name参数传进去,传参不一样 

 

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

keil代码格式化快捷方法

美化当前文件:-n !E --styleansi -p -s4 -S -f -xW -w -xw 美化整个工程文件:-n "$E*.c" "$E*.h" --styleansi -p -s4 -S -f -xW -w -xw -R 当前时间:!E~E^E 添加文件注释:!E 函数功能注释:!E ~…

快排(动图详细版,快速理解)

注:本文主要介绍六大排序中的快排 文章目录前言一、三大法则1.1 Hoare法1.2 挖坑法1.3 双指针法(更加便捷)1.4 三种方法时间复杂度计算二、快排栈问题优化方式2.1 三数取中2.2 小区间优化三、非递归快排前言 快速排序是Hoare于1962年提出的一…

Linux高并发服务器(webserver)

一.有限状态机 它的转移函数表示系统从一个状态转移到另一个状态的条件 二.EPOLL 在内核中创建一个数据,这个数据有两个比较重要的数据,一个是需要检测的文件描述符的信息(红黑树),一个双向链表,存放检测到…

利用多专家模型解决长尾识别任务

来源:投稿 作者:TransforMe 编辑:学姐 贡献 提出了RoutIng Diverse Experts(RIDE),不仅可以减少所有类别的variance,并且还可以减少尾部类的bias。同时提升了头部和尾部的性能。 思路 目前存…

easyrecovery2023电脑文件数据恢复软件功能介绍

EasyRecovery功能全面,即便是没有经验的小白用户也可以很快上手,让你足不出户即可搞定常见的数据丢失问题。 在使用和操作存储设备期间,数据丢失问题在所难免。比如,误删除某个文件、不小心将有数据的分区格式化、误清空了有重要…

2023“认证杯”数学中国数学建模赛题浅析

2023年认证杯”数学中国数学建模如期开赛,本次比赛与妈杯,泰迪杯时间有点冲突。因此,个人精力有限,有些不可避免地错误欢迎大家指出。为了大家更方便的选题,我将为大家对四道题目进行简要的解析,以方便大家…

【vue3】04-vue基础语法补充及阶段案例

文章目录vue基础语法补充vue的computedvue的watch侦听书籍购物车案例vue基础语法补充 vue的computed computed:用于声明要在组件实例上暴露的计算属性。(官方文档描述) 我们已经知道,在模板中可以直接通过插值语法显示一些data中…

智能网卡相关知识(smart nic 、DPU)

网卡作为穿行在网络与计算之间的桥梁,是可以解决计算瓶颈的关键硬件。 随着CPU 密度和数据中心网络带宽的进一步提升,用户对预期性能的需求,系统运行平稳性都会有更高的要求。云厂商一方面面临巨大的成本压力,另一方面面临巨大的…

新一代异步IO框架 io_uring | 得物技术

1.Linux IO 模型分类 相比于kernel bypass 模式需要结合具体的硬件支撑来讲,native IO是日常工作中接触到比较多的一种,其中同步IO在较长一段时间内被广泛使用,通常我们接触到的IO操作主要分为网络IO和存储IO。在大流量高并发的今天&#xff…

光伏电池片技术N型迭代,机器视觉检测赋能完成产量“弯道超车”

电池片是光伏发电的核心部件,其技术路线和工艺水平直接影响光伏组件的发电效率和使用寿命。随着硅料、硅片技术逐渐接近其升级迭代空间的瓶颈,电池片环节正处于技术变革期,是光伏产业链中迭代最快的部分。P型中PERC电池片是现阶段市场的主流产…

C/C++每日一练(20230413)

目录 1. 与浮点数A最接近的分数B/C 🌟 2. 比较版本号 🌟🌟 3. 无重复字符的最长子串 🌟🌟 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每…

Multi-modal Alignment using Representation Codebook

Multi-modal Alignment using Representation Codebook 题目Multi-modal Alignment using Representation Codebook译题使用表示代码集的多模态对齐期刊/会议CVPR 摘要:对齐来自不同模态的信号是视觉语言表征学习(representation learning)的…

Vue2_02_指令

模板语法 — Vue.js (vuejs.org) 指令 (Directives) 是带有 v- 前缀的特殊 attribute 参数 一些指令能够接收一个“参数”&#xff0c;在指令名称之后以冒号表示 <a v-bind:href"url">...</a> 动态参数 可以用方括号括起来的 JavaScript 表达式作为一…

JWT与Token详解

前言&#xff1a;JWT全称“JSON Web Token”&#xff0c;是实现Token的机制。官网&#xff1a;https://jwt.io/ JWT的应用 JWT用于登录身份验证。用户登录成功后&#xff0c;后端通过JWT机制生成一个token&#xff0c;返回给客户端。客户端后续的每次请求都需要携带token&…

常用加密算法

目录 常见的加密算法可以分成三种&#xff1a; 对称加密算法 DES 3DES AES 非对称加密 RSA ECC Hash算法 MD5 SHA1 算法对比 算法选择 常见的加密算法可以分成三种&#xff1a; 对称加密算法&#xff1b;非对称加密算法&#xff1b;Hash算法&#xff1b;接下来我们…

面试手撕堆排序

堆排序代码如下&#xff08;注释见下&#xff09;&#xff1a; 首先将待排序的数组构造成一个大根堆&#xff0c;此时&#xff0c;整个数组的最大值就是堆结构的堆顶 将堆顶的数与末尾的数交换&#xff0c;此时&#xff0c;末尾的数为最大值&#xff0c;剩余待排序数组个数为n…

Linux设备驱动开发 - 块设备驱动ramdisk实例

By: fulinux E-mail: fulinuxsina.com Blog: https://blog.csdn.net/fulinus 喜欢的盆友欢迎点赞和订阅&#xff01; 你的喜欢就是我写作的动力&#xff01; 目录理论来源源码编译测试理论来源 ramdisk驱动&#xff0c;区别在与使用最新的内核版本&#xff0c;比如linux-4.15。…

MySQL数据库:聚合函数、分组查询、约束、默认值设置、自增属性

一、聚合函数 1.聚合函数 在MySQL数据库中预定义好的一些数据统计函数。 2.count(*) 功能&#xff1a;统计结果条数。 3.sum(字段名) 功能&#xff1a;对指定字段的数据求和。 4.avg(字段名) 功能&#xff1a;对指定字段的数据求平均值。 5.max(字段名) 和 min(字段名) …

答疑——20年国赛题(JAVA解法)

题目链接&#xff1a;用户登录https://www.lanqiao.cn/problems/1025/learning/?page3&first_category_id1&sortstudents_count 题目描述 有 n 位同学同时找老师答疑。每位同学都预先估计了自己答疑的时间。 老师可以安排答疑的顺序&#xff0c;同学们要依次进入老…

sqoop数据导出、脚本使用

目录 准备表与数据 数据导出 脚本调用 准备表与数据 mysql表 CREATE TABLE user (id int(20),name varchar(20) )ENGINEINNODB DEFAULT CHARSETutf8; hive表 create table users( id bigint, name string ) row format delimited fields terminated by "\t";…