还不会使用 Vue-Router?请看过来

news2024/12/27 12:41:26

目录

  • 注明:
  • 路由的概念
    • 什么是路由和前端路由
    • 路由的分类
  • 配置Vue-router
    • 安装
    • 实例化router
    • 挂载
    • 配置路由
    • 一个路由匹配 多组件视图
    • 使用路由
      • 声明式路由导航 router-link
      • 编程式路由导航
    • 缓存路由组件 (keep-alive)

注明:

Vue-router 3.x的版本 对应Vue2.0的版本, Vue-router 4.x的版本 对应Vue3.0的版本,本文先以router 3.x的版本作为讲解,后续我会总结Vue-router 4.x 的差异。

路由的概念

什么是路由和前端路由

路由:是指分组从源到目的地时,决定端到端路径的网络范围的进程
前端路由:主要指在前端开发中页面组件之间的互相映射渲染的一种规则模式

路由的分类

hash 模式:
vue-router 默认 hash 模式 —— 使用 URL 的 hash 来模拟一个完整的 URL,于是当 URL 改变时,页面不会重新加载。
history 模式: 基于 window.history
这种模式充分利用 history.pushState API 来完成 URL 跳转而无须重新加载页面。

了解window.history

配置Vue-router

安装

npm install vue-router

实例化router

在项目中,Src同级目录下创建router文件
在这里插入图片描述

import Vue from 'vue'
import VueRouter from 'vue-router'
Vue.use(VueRouter)   //通过use(),应用router 中间件

挂载

在main.js中,将路由挂载到Vue实例身上
在这里插入图片描述

配置路由

//路由配置
const routes = [
  //配置多种路由 路径以及映射关系
  {
    path: '/loginhome',   //路由路径
    name: 'loginhome',
    component: achievements,     //路由映射的视图页面
    children: [],
  },
  {
    path: '/datapage',
    name: 'datapage',
    component: datapage,
    children: [],
  },
  {
    path: '/bemissing',
    name: 'bemissing',
    component: bemissing,
    children: [],
  },
]

Vue.use(VueRouter)
const router = new VueRouter({  //new 一个 路由实例
  mode: "history",    //设定路由模式
  routes,       //将路由的配置数组,挂载到  routes 身上
})
export default router    

一个路由匹配 多组件视图

当有需求 在一个路由路径下,匹配两个或多个路由视图,可以采用如下实现。

const routes = [
  //配置多种路由 路径以及映射关系
  {
    path: '/loginhome',   //路由路径
    name: 'loginhome',
    components: {      // 在配置 视图映射时 把原本 的 component 改写成 components  ,是一个对象,
      demo1: achievements,
      demo2: datapage
    }
    children: [],
  },
]

components 的 key值 为 视图的 映射名,value为组件 , 在 router-view 上绑定 name ,通过name 展示 对应的 视图 组件。

     <router-view name="demo1"></router-view>
     <router-view name="demo2"></router-view>

嵌套多级路由,在一个路由下,配置二三级 以及多级路由, 只需要 在 父级路由下 的 children 里面继续书写 配置项即可。

使用路由

声明式路由导航 router-link

<div>
     <router-link to="/loginhome">登录</router-link>  //  声明式路由 使用 router-link 标签作为页面点击跳转的节点,to为其指定 跳转的路径。
</div>
<router-view></router-view>    //并且使用   router-view   为其指定,路由切换所映射页面的位置。

router-link 常用 属性简介

to:表示目标路由的链接。当被点击后,内部会立刻把 to 的值传到 router.push(),所以这个值可以是一个字符串或者是描述目标位置的对象。
replace:设置 replace 属性的话,当点击时,会调用 router.replace() 而不是 router.push(),于是导航后不会留下 history 记录。
tag: 由于 router-link 默认被渲染成 a 标签,有时候想要 渲染成某种标签例如 。 于是我们使用 tag prop 类指定何种标签,同样它还是会监听点击,触发导航
active-class:设置链接激活时使用的 CSS 类名。默认值可以通过路由的构造选项 linkActiveClass 来全局配置。

编程式路由导航

在实际开发过程中,使用编程式路由方法的居多。

通过页面点击触发事件,在事件中,使用 $router.push ,进行页面跳转

 this.$router.push({
     path: "/loginhome"
 })

了解编程式路由导航

缓存路由组件 (keep-alive)

当我们切换路由视图时,当前显示组件切换走了的时候,如果这时候,当前组件中刚好有表单采集好的数据,就会被清空,因为路由 router-view 视图展示,默认 当视图切出 时,执行了组件卸载,切入时,再执行的组件挂载,所以组件页面切出时,页面中的数据会全部丢失,,如果不想让组件卸载只需要把 router-view 通过 keep-alive 标签包裹起来,keep-alive 会 阻止 销毁

了解 keep-alive

  <keep-alive>
     <router-view></router-view>
  </keep-alive>

如果,展示区 提供展示 多个路由 而我只希望 其中的某一个路由 视图不卸载,可以为 keep-alive 添加一个属性 include或exclude,用来 指定,哪个路由不卸载

  <keep-alive include="指定组件名">
     <router-view></router-view>
  </keep-alive>

在这里插入图片描述

备注:在vue router 中 默认使用的是严格匹配模式,如果需要开启模糊匹配模式只需要在路由路径后面加上 * 号即可

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

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

相关文章

如何保持电机安全运行

介绍 电动机在电子系统中的使用已变得普遍。电机尺寸、控制和成本效率方面的创新使设计人员能够将电机添加到系 统中&#xff0c;从而创造新功能并扩展最终产品的功能。 随着电动机数量的急剧增加&#xff0c;对功率效率的担忧促使系统设计人员使用更高电压的电机并提高其设计…

Springboot毕业设计毕设作品,个人博客系统设计与实现

功能清单 【后台管理员功能】 系统设置&#xff1a;设置关于我们、联系我们、加入我们、法律声明 会员列表&#xff1a;查看所有注册会员信息&#xff0c;支持删除 广告管理&#xff1a;设置小程序首页轮播图广告和链接 留言列表&#xff1a;所有用户留言信息列表&#xff0c;支…

天图投资通过聆讯:资产管理规模247亿 投了小红书与奈雪

雷递网 雷建平 11月30日深圳市天图投资管理股份有限公司&#xff08;简称&#xff1a;“天图投资”&#xff09;日前通过聆讯&#xff0c;准备在港交所上市。天图投资被称为消费赛道狙击手&#xff0c;在深圳、北京、上海、香港四地设有办公室&#xff0c;投资案例包括飞鹤、周…

Python异常类

1.内建异常类的继承关系 2.常见异常汇总 异常名称 说明 ArithmeticError所有数值计算错误的基类AssertionError断言语句失败AttributeError对象没有这个属性BaseException所有异常的基类DeprecationWarning关于被弃用的特征的警告EnvironmentError操作系统错误的基类EO…

计算机组成原理-输入输出系统(持续更新中)

I/O系统基本概念 基本概念 I/O硬件 现代计算机的结构 “I/O”就是"输入/输出" IO设备就是可以将数据输入到计算机&#xff0c;或者可以接收计算机输出数据的外部设备。 常见的IO设备 主机如何与I/O设备进行交互&#xff1f; I/O接口&#xff1a;又称I/O控制器&…

11 【Express服务端渲染】

11 【Express服务端渲染】 1.Express脚手架的安装 安装Express脚手架有两种方式&#xff1a; 1.1 使用express-generator安装 使用命令行进入项目目录&#xff0c;依次执行&#xff1a; cnpm i -g express-generator可通过express -h查看命令行的指令含义 express -hUsag…

You Only Learn One Representation: Unified Network for Multiple Tasks

You Only Learn One Representation: Unified Network for Multiple Tasks一、引言&#xff08;一&#xff09;、 Explicit deep learning&#xff08;二&#xff09;、Implicit deep learning&#xff08;三&#xff09;、Knowledge modeling(四)、Kernel space alignment二、…

Python 算法:感受算法的小小魅力和复杂度的计算

一、小小算法的魅力 这是一个很普通的小例子&#xff0c;但是可以让我们领略到算法改进之后的强大魅力。 已知abc 1000&#xff0c;且a^2b^2c^2&#xff0c;求a、b、c的所有自然数解。 这个很简单&#xff0c;就是通过代码分别给a、b、c赋值&#xff0c;然后返回符合abc 10…

Kafka集群环境搭建及基本使用

前提条件 操作系统&#xff1a;CentOS7服务器&#xff1a;3台Java环境&#xff1a;JDK1.8。安装教程参考JDK1.8安装Zookeeper环境 搭建教程参考Zookeeper集群环境搭建及使用Kafka基础知识参考Kafka角色及功能概览 搭建步骤 下载 执行下载命令wget https://archive.apache.o…

使用SpringBoot实现RabbitMQ各个模式

实现了RabbitMQ各个模式&#xff08;simple、topic、direct、fanout及发送方确认和接收方确认&#xff09;的一个demo 源码&#xff1a;https://gitee.com/xunan29/study-rabbitmq-test-project 参考文章&#xff1a; https://blog.csdn.net/K_kzj_K/article/details/10664225…

[ Linux ] Linux信号概述 信号的产生

目录 0.问题引入&#xff1a; 0.1 将进程设置为后台进程 0.2 查看后台进程并将后台进程提至前台 0.3 将前台进程设置为后台进程 1.信号的概念 2.查看信号列表 3.信号处理的常见方式 4.信号的产生 4.1 用户层产生信号的方式 4.1.1通过终端按键产生信号 4.1.2调用系统函…

【数据集研究】PASCAL VOC 2007

目录1、数据集地址2、适用的比赛1&#xff09;Main Competitions2&#xff09;Taster Competitions3、类别及类别的定义1&#xff09;数据集包含的类别2&#xff09;类别的定义4、数据集1&#xff09;训练集、验证集、测试集2&#xff09;图片和待检测物在类别的分布详情5、标注…

Kamiya丨Kamiya艾美捷小鼠BDNF ELISA原理分析

Kamiya艾美捷小鼠BDNF ELISA预期用途&#xff1a; 小鼠BDNF ELISA用于定量测定小鼠细胞培养物上清液、细胞裂解物、细胞培养物中的BDNF&#xff0c; 血清和血浆&#xff08;肝素、EDTA、柠檬酸盐&#xff09;。仅供研究使用。 引言&#xff1a; 脑源性神经营养因子&#xff…

多线程与高并发(13)——Java常见并发容器总结

本文总结常见的并发容器&#xff0c;包含ConcurrentHashMap、CopyOnWriteArrayList 、ConcurrentLinkedQueue、BlockingQueue 、ConcurrentSkipListMap&#xff0c;本文仅做简单的总结&#xff0c;不做详细的源码分析。 一、ConcurrentHashMap HashMap不是线程安全的&#xf…

Linux基本命令(三)——服务器搭建

搭建简单Web服务器 安装web服务 yum -y install httpd 启动httpd服务 systemctl start httpd查看httpd是否开启成功 service httpd status以下是状态信息&#xff1a; 重新启动httpd systemctl restart httpd6.进入主配置文件 vim /etc/httpd/conf/httpd.conf编辑自配置文件 v…

FPGA控制W5500完成UDP环回测试

FPGA控制W5500完成UDP环回测试&#xff11; 前言&#xff12; 前期准备&#xff13; &#xff37;5500寄存器描述4 &#xff37;5500 环回测试4.1 W5500初始化4.1.1 通用寄存器初始化4.1.2 socket寄存器初始化4.2 W5500数据接收4.3 W5500数据发送4.4 数据环回5 总结&#x…

RKMEDIA--VO的使用

这一节主要说说rkmedia vo模块的使用。 rkmedia的vo是对DRM接口的封装&#xff0c;提供给用户更方便的使用&#xff0c;rv1126/rv1109支持两个vo图层。 1、首先先介绍一下DRM的测试命令--modetest&#xff0c;用来确认当前屏幕能够正常点亮。 modetest -M rockchip //打印出…

融云艾瑞发布《政企数智办公平台行业研究报告》,解读数智化时代的办公新趋势

关注公众号文章扫码报名融云&艾瑞“政企数智办公报告及新品发布会” 近期&#xff0c;安全可信的通信云服务商融云&#xff0c;携手业内权威研究机构艾瑞咨询联合发布《2022 年中国政企数智办公平台行业研究报告》&#xff08;下简称《报告》&#xff09;&#xff0c;回顾政…

Kotlin高仿微信-第28篇-朋友圈-预览图片、预览小视频

Kotlin高仿微信-项目实践58篇详细讲解了各个功能点&#xff0c;包括&#xff1a;注册、登录、主页、单聊(文本、表情、语音、图片、小视频、视频通话、语音通话、红包、转账)、群聊、个人信息、朋友圈、支付服务、扫一扫、搜索好友、添加好友、开通VIP等众多功能。 Kotlin高仿…

ios照片误删怎么恢复,iphone已经删除的照片怎么恢复

苹果手机里面的重要照片被删除了&#xff0c;相信很多人都比较着急&#xff0c;想要想办法找回来。ios照片误删怎么恢复&#xff1f; 方法1.通过“最近删除”恢复照片 苹果删除的照片如何恢复&#xff1f;一般情况下&#xff0c;从苹果手机刚删除的照片会暂存在“最近删除”这…