事件委派+自定义属性+编程式导航实现路由跳转及传参

news2024/11/29 12:38:09

当我们页面中有许多a标签需要实现点击跳转到同一个页面并携带不同的参数时,我们就可以使用事件委派+自定义属性+编程式导航 的方式,用最小的内存实现路由跳转的最大效率。

为什么我们不用router-link 进行跳转?

要知道,我们页面中的每一个router-link 都是Vue通过new一个组件给我们创建出来的,当我们页面中有几百个router-link 标签时,对于浏览器的内存压力是非常大的,会造成卡顿。

一、事件委派

事件委派就是将多个元素共有的事件放到他们共同的父元素身上。

比如下面:

我们有一个三级菜单的效果(具体的结构不需要知道,只需要知道点击a标签实现路由跳转即可)

每一级的菜单都有若干个a标签,点击这些标签就会跳转到共同的页面,参数是点击的标签名和对应的id。

其实这样我们有多少个a标签就会有多少个回调函数,还是挺占内存的。

所以,我们把这个点击路由跳转的事件绑定到他们共同的父元素上就能只用一个回调函数并且给所有的元素添加点击路由跳转事件。

 我们把事件提升到父元素的操作就叫做事件委派。

二、自定义属性

我们在上面使用了事件委派后,改标签下的所有元素都拥有了该事件,那我们接下来要做的就是判断我们点的到底是不是a标签,只有我们点击了a标签才会实现路由跳转,点击h3,dt,div啥的都不会跳转。

我们可以使用自定义属性来标识该标签是否为a标签。

:data-属性名 = "属性值"

 我们给每一级菜单都加上一个categoryName和categoryId属性,

其值为就是我们要传参的菜单名和该标签的id号。

categoryName属性用来判断点击对象是否为a标签和传参,categoryId用来传参。

三、编程式导航

我们既然已经定义了自定义属性,那我们要拿到自定义属性进行判断:

event.target.dataset.属性

注意:我们在自定义属性的时候用的是驼峰命名法,而转化为真实DOM后,全部都变成了小写字母,并且我们获取属性的属性不需要加上data- 

 我们就可以根据是否存在categoryName判断是否点击的是a标签,如果是,将categoryName和categoryId属性作为参数传递过去。

// 点击三级联动菜单跳转到search,并携带参数:名称和ID
    goSearch(event) {
      let dataset = event.target.dataset;
      // 如果点击的是目标元素,就发送请求
      if (dataset.categoryname) {
        this.$router.push({
          name: "search",
          query: {
            categoryName: dataset.categoryname,
            categoryId: dataset.categoryid
          }
        })
      }
    },

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

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

相关文章

汇编:关于栈的知识

1.入栈和出栈指令 2. SS与SP 3. 入栈与出栈 3.1 执行push ax ↑↑ 3.2 执行pop ax ↓↓ 3.3 栈顶超界的问题 4. 寄存器赋值 基于8086CPU编程时,可以将一段内存当作栈来使用。一个栈段最大可以设为64KB(0-FFFFH)。 1.入栈和出栈指令…

058-第三代软件开发-文件Model

第三代软件开发-文件Model 文章目录 第三代软件开发-文件Model项目介绍文件Model 关键字: Qt、 Qml、 关键字3、 关键字4、 关键字5 项目介绍 欢迎来到我们的 QML & C 项目!这个项目结合了 QML(Qt Meta-Object Language)…

[计算机网络]应用层概述

0.写在前面: 该层为教学模型的最后一层,某种意义上来说是最接近各位开发者的一层,正因如此,这层中的很多定义和概念大家都有属于自己的理解, 完全按照书本反而才是异类,因此在这里我会去结合我做前端开发的一些经验,来处理和讲解一些概念,另外本层中的部分协议也不会过多阐述了…

提升逼格,自己搭建博客网站不求人

背景 对于一个热爱分享知识和经验的大佬来说,搭建一个自己的个人博客是十分必要的。因为各个免费写博客平台都会有每天写博客限制,比如我现在这篇文章的限制,就是每天最多发表3篇,同时还给我的博客添加一大波广告,真是…

async函数和await关键字

async写在一个函数a前面,该函数变为异步函数,可在里面使用await关键字,await后面一般跟一个promise对象(axios函数返回一个promise对象,里面有异步任务),await会原地等待该异步任务结果&#xf…

JVM基础篇:垃圾回收

1.前言 1.1C/C的内存管理 在C/C这类没有自动垃圾回收机制的语言中,一个对象如果不再使用,需要手动释放,否则就会出现内存泄漏。我们称这种释放对象的过程为垃圾回收,而需要程序员编写代码进行回收的方式为手动回收。内存泄漏指的…

WiFi 发射链路 MCS 自适应机制介绍

链路适配是指发射机选择最优的MCS向特定的接收机发送数据的过程。链路自适应算法的实现有其特殊性,但通常基于测量的数据包错误率(PER)。大多数算法监视PER并调整MCS以跟踪一个最佳的长期平均值,以平衡由于使用更高MCS发送更短数据包而减少的开销和由于更…

坚鹏:中国工商银行数字化背景下银行公司业务如何快速转型培训

中国工商银行作为全球最大的银行,资产规模超过40万亿元,最近几年围绕“数字生态、数字资产、数字技术、数字基建、数字基因”五维布局,深入推进数字化转型,加快形成体系化、生态化实施路径,促进科技与业务加速融合&…

jupyter notebook 添加conda环境变量为内核(kenel)

第一步:安装ipykernel 在激活环境后,需要安装ipykernel包,以便将Conda环境添加到Jupyter Notebook中。使用以下命令安装: pip install ipykernel第二步:将Conda环境添加到Jupyter 需要将Conda环境添加到Jupyter Not…

在拼多多,照见热气腾腾的平凡人生

文 | 螳螂观察 作者 | 易不二 内容丰富的《鲁迅日记》里,经常会出现“xx日晴,无事”的记载。 如果按照年份算,在被记载的日子里,每年鲁迅都有一二十天的时间是“无事”的状态。 很难想象,为人类历史文明前进照亮了…

2024年最新最全的Jmeter接口测试必会技能:jmeter对图片验证码的处理

jmeter对图片验证码的处理 在web端的登录接口经常会有图片验证码的输入,而且每次登录时图片验证码都是随机的;当通过jmeter做接口登录的时候要对图片验证码进行识别出图片中的字段,然后再登录接口中使用; 通过jmeter对图片验证码…

error LNK2038: 检测到“RuntimeLibrary”的不匹配项 解决方法

问题: 我们在使用Visual Studio编程的时候偶尔会遇到以下三种报错: error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MD_DynamicRelease”不匹配值“MDd_DynamicDebug” (引用的是release模式,但设置成debug模式了…

知识点小总结

‘Integer(int)‘ 已经过时了 https://blog.csdn.net/qq_43116031/article/details/127793512 解决Java中的“找不到符号“错误 解决Java中的“找不到符号“错误_java: 找不到符号_很酷的站长的博客-CSDN博客 可右键打开 错误: 编码 UTF-8 的不可映射字符 错误: 编码 UTF-8 …

jQuery_06 过滤器的使用

什么是过滤器? 过滤器就是用来筛选dom对象的,过滤器是和选择器一起使用的。在选择了dom对象后在进行过滤筛选。 jQuery对象中存储的dom对象顺序与页面标签声明有关系。 声明顺序就是dom中存放的顺序 1.基本过滤器 使用dom对象在数组中的位置来作为过滤条…

FLASH 模拟 EEPROM 实验

STM32 本身没有自带 EEPROM,但是 STM32 具有 IAP(在应用编程)功能,所以我们可 以把它的 FLASH 当成 EEPROM 来使用。本章,我们将利用 STM32 内部的 FLASH 来实现NOR FLASH(EEPROM)(实验类似的效果,不过这次…

BigDecimal的使用全面总结

BigDecimal BigDecimal可以表示任意大小,任意精度的有符号十进制数。所以不用怕精度问题,也不用怕大小问题,放心使用就行了。就是要注意的是,使用的时候有一些注意点。还有就是要注意避免创建的时候存在精度问题,尤其…

【办公软件】电脑开机密码忘记了如何重置?

这个案例是家人的电脑,已经使用多年,又是有小孩操作过的,所以电脑密码根本不记得是什么了?那难道这台电脑就废了吗?需要重新装机吗?那里面的资料不是没有了? 为了解决以上问题,一般…

【深度学习】概率图模型(一)概率图模型理论简介

文章目录 一、概率图模型1. 联合概率表2. 条件独立性假设3. 三个基本问题 二、模型表示1. 有向图模型(贝叶斯网络)2. 无向图模型(马尔可夫网络) 三、学习四、推断 概率图模型(Probabilistic Graphical Model&#xff0…

常见树种(贵州省):019滇白珠、杜茎山、苍山越桔、黄背越桔、贵州毛柃、半齿柃、钝叶柃、细枝柃、细齿叶柃木、土蜜树、山矾、胡颓子、檵木

摘要:本专栏树种介绍图片来源于PPBC中国植物图像库(下附网址),本文整理仅做交流学习使用,同时便于查找,如有侵权请联系删除。 图片网址:PPBC中国植物图像库——最大的植物分类图片库 一、滇白珠…

如何回收利用将废弃电脑当监控摄像头用?或者...监视?

项目:https://github.com/MartinxMax/J0ker/releases/tag/V1.0 视频 J0ker说明 功能RTSP推流实时播放实时录屏实时直播 Windows平台 准备材料 一台废弃的64位Windows系统电脑,要求有摄像头 配置废弃电脑 我这里直接远程桌面连接过去了 启动RTSP服务 #J0ker.exe -server …