vue-router学习总结

2023-11-01

vue-router学习

vue-router介绍

路由的快速开始

  • 定义各页面容器组件

  • 定义路由配置文件

  • 在入口文件添加路由配置信息

  • 修改跟组件页面信息

  • 接下来可以启动项目查看路由跳转

路由基础知识介绍

动态路由

  • 你可以通过:给一个路由添加参数
  • 之后在组件中通过this.$route.params.参数名获取+ this.$route的api文档https://router.vuejs.org/zh-cn/api/route-object.html
  • 当路由参数发生变化的时候,组件不会被卸载而是复用,这也意味着组件的生命周期钩子不会再被调用,那么你只能监听$routes实例属性知道路由发生了变化
const User = {
  template: '...',
  watch: {
    '$route' (to, from) {
      // 对路由变化作出响应...
    }
  }
}

嵌套路由

  • 如果有嵌套路由,要用children属性去配置,路由路径会自动拼接
  • 可以给一个页面初始化一个组件用空路由实现

用代码进行路由跳转

  • 在组件中你可以通过this.$route获取路由对象
-  字符串
router.push('home')

- 对象
router.push({ path: 'home' })

- 命名的路由
router.push({ name: 'user', params: { userId: 123 }})

- 带查询参数,变成 /register?plan=private
router.push({ path: 'register', query: { plan: 'private' }})

命名路由

  • 有时候,通过一个名称来标识一个路由显得更方便一些,特别是在链接一个路由,或者是执行一些跳转的时候。你可以在创建Router实例的时候,在routes配置中给某个路由设置名称。
const router = new VueRouter({
  routes: [
    {
      path: '/user/:userId',
      name: 'user',
      component: User
    }
  ]
})
  • 要链接到一个命名路由,可以给 router-link 的 to 属性传一个对象:
<router-link :to="{ name: 'user', params: { userId: 123 }}">User</router-link>
  • 这跟代码调用 router.push() 是一回事:
router.push({ name: 'user', params: { userId: 123 }})

命名视图

  • 在跳转一个路由的时候可以同时渲染页面中的多个坑
  • 如果 router-view 没有设置名字,那么默认为 default
<router-view class="view one"></router-view>
<router-view class="view two" name="a"></router-view>
<router-view class="view three" name="b"></router-view>
  • 一个视图使用一个组件渲染,因此对于同个路由,多个视图就需要多个组件。确保正确使用 components 配置(带上 s):
const router = new VueRouter({
  routes: [
    {
      path: '/',
      components: {
        default: Foo,
        a: Bar,
        b: Baz
      }
    }
  ]
})

重定向和别名

  • 重定向也是通过 routes 配置来完成,重定向的目标也可以是一个命名的路由,甚至是一个方法:
const router = new VueRouter({
  routes: [
    { path: '/a', redirect: '/b' },
    { path: '/c', redirect: { name: 'foo' }},
    { path: '/d', redirect: to => {
      // 方法接收 目标路由 作为参数
      // return 重定向的 字符串路径/路径对象
    }}
  ]
})
  • 当路由路径太深的时候,你可以给路由起一个别名,那么通过别名和访问太深的路由的页面渲染效果是一样的
  • 『重定向』的意思是,当用户访问 /a时,URL 将会被替换成 /b,然后匹配路由为 /b,那么『别名』又是什么呢?
  • /a 的别名是 /b,意味着,当用户访问 /b 时,URL 会保持为 /b,但是路由匹配则为 /a,就像用户访问 /a 一样。
  • 上面对应的路由配置为:
const router = new VueRouter({
  routes: [
    { path: '/a', component: A, alias: '/b' }
  ]
})

三种history

  • mode
  • 类型: string
  • 默认值: "hash" (浏览器环境) | "abstract" (Node.ls 环境)
  • 可选值: "hash" | "history" | "abstract"
  • 配置路由模式:
  • hash: 使用URL hash值来做路由。支持所有浏览器,包括不支持 HTML5 History Api 的浏览器。
  • history: 依赖 HTML5 History API 和服务器配置。查看官方HTML5 History模式
  • abstract: 支持所有 JavaScript 运行环境,如 Node.js 服务器端。如果发现没有浏览器的API,路由会自动强制进入这个模式。

导航钩子

  • 可以在钩子里做权限校验和日志记录
  • 一共有三种导航钩子,在钩子中别忘了一定要调用next方法
  • 官方网址

转载于:https://my.oschina.net/u/3317396/blog/885789

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vue-router学习总结 的相关文章

随机推荐

  • vue 3.x基础入门:vue 的指令与过滤器

    前置基础知识 Vue3 0入门 基本使用以及vue的调试工具 文章目录 一 vue的指令与过滤器 1 1 指令的概念 1 2 内容渲染指令 v text 语法 v html 1 3 属性绑定指令 属性绑定指令的简写形式 使用 Javascr
  • 虚幻引擎5 (UE5):完整的初学者学习教程

    流派 电子学习 MP4 视频 h264 1280 720 音频 AAC 44 1 KHz 语言 英语 中英文字幕 根据原英文字幕机译更准确 大小解压后 6 26 GB 时长 7h 32m 虚幻引擎5的最快入门方法云桥网络 平台获取教程 你会
  • 关于BeautifulSoup的总结

    最近一直在用BeautifulSoup 但是语法很容易忘记 在这里做个学习总结吧 参考 Beautiful Soup 4 2 0 文档 功能 BeautifulSoup是用来从HTML或XML中提取数据的Python库 导入 使用方法 fr
  • Spring搭建Web应用(MVC)起步(Tomcat环境)

    Spring搭建Web应用 MVC 起步 Tomcat环境 转载 首先 建立WEB应用的目录 必须的 在tomcat的webapp目录下 创建目录 spring 目录结构如下 spring WEB INF classes lib 然
  • 视频画面噪点太多难处理?AI工具一键消除

    很多时候我们下载或者录制的视频画面都会有带噪点的问题 噪点就像密密麻麻的小颗粒 这样非常影响观看 这个时候我们需要使用视频降噪功能 视频降噪可以提升视频内容的保真 那么视频画面噪点如何处理呢 视频噪点 也称为视频噪声 是指由于各种原因导致的
  • 一个开发日常error: #20: identifier “SPI_HandleTypeDef“ is undefined

    最近开发跑rtos带蓝牙的stm32wb55 开发st的方便在于有cube可以生成代码 可是有中间层的情况就支持的不够好 比如既带rtos又带蓝牙协议栈就无法用cube生成可以编译成功的代码 官方例程的readme的描述也说明了这一点 所以
  • JS年龄、身份证号、出生日期、邮箱、密码、数字、中文等多种方式校验(持续完善中...)

    1 年龄校验 export const validateCheckAge rule value callback gt if value return callback new Error 年龄不能为空 setTimeout gt if N
  • Quartz 环境搭建并启动

    项目代码 https github com yuleiqq quartz example tree master quartz study 1 利用IDEA 工具搭建一个基本的Java Maven 工程 并配置依赖包 pom xml 配置
  • USB-IF BC1.2充电协议解读

    BC1 2是USB2 0开始的一个使用Vbus 5V进行USB对接充电的一个协议 该协议由USB IF协会在2010年10月发布 基于当时USB 2 0的Vbus供电 最大能供给电流为500mA 协议通过USB的D D 完成并确定支持BC1
  • Flask进阶(一)——请求上下文和应用上下文完全解答(上)

    前言 flask的轻便和强大的扩展性能会让web的初级开发者甚至是有经验的开发者神往 flask能在短时间内快速搭建web的后台 而 flask web开发 基于python的web应用开发实战 是最好的flask入门教程了 但当中对应用上
  • Linux如何强制关闭PyCharm或者其他软件

    1 右键选择打开终端 2 输入ps ef指令查询所要关闭程序的PID号 3 找到自己想要关闭的程序 一定看好是自己的 别关了别人的 记住PID号 26252 26257 4 输入 kill s 9 PID号 26252 26257 5 敲上
  • Laravel 添加自定义全局函数

    第一步 在app目录下建立Common文件夹 在文件夹中创建helpers php 第二步 在根目录下的artisan文件中中引入require once DIR app Common helpers php 自动加载 第三步 在publi
  • Android开发:实现APP自动填写注册验证码功能

    http blog csdn net xiong it article details 50997084 前言 此技术的实现原理是 广播接收者 和 内容观察者 利用接收到短信时的系统发出的广播进行短信的读取 并利用正则表达式解析出短信中的验
  • 柔性数组 +结构体中数组名与指针的区别

    柔性数组 一 柔性数组 1 柔性数组的特点 2 柔性数组的使用 3 柔性数组的替代形式 二 结构体中数组名与指针的区别 一 柔性数组 柔性数组是指在结构体中定义一个为指定大小的数组 1 柔性数组的特点 1 在结构体中 柔性数组的前面至少有一
  • WSL2+ubuntu2004+cuda11.8+cudnn8.8开发环境搭建

    文章目录 1 系统环境要求 2 WSL2操作 大多是命令行 2 1 安装wsl 2 2 建议直接将默认版本设置为WSL 2 但可能不做这一步默认也是2 2 3 检查版本或状态信息 2 4 安装Linux子系统 2 5 修改安装位置 2 6
  • Eureka Client Instance status DOWN - SpringCloud Eureka 实例状态为DOWN时如何排查问题

    Eureka Client Instance status DOWN SpringCloud Eureka 实例状态为DOWN时如何排查问题 Eureka Client Instance status DOWN SpringCloud Eu
  • ios 手机浏览器,点击输入框页面会放大

    一个普通的h5静态页面 在ios手机上用浏览器打开 发现每次聚焦输入框的时候整个页面都会放大 解决办法在html的头部meta标签中设置 user scalable no viewport meta 标记 HTML 超文本标记语言 MDN
  • C++STL之List容器

    C STL之List容器 1 再谈链表 List链表的概念再度出现了 作为线性表的一员 C 的STL提供了快速进行构建的方法 为此 在前文的基础上通过STL进行直接使用 这对于程序设计中快速构建原型是相当有必要的 这里的STL链表是单链表的
  • 【Linux】进程间通信(无名/有名管道及System V共享内存)

    需要云服务器等云产品来学习Linux的同学可以移步 gt 腾讯云 lt gt 阿里云 lt gt 华为云 lt 官网 轻量型云服务器低至112元 年 新用户首次下单享超低折扣 目录 一 通信的相关概念 二 管道 半双工 1 管道的概念 三
  • vue-router学习总结

    vue router学习 vue router介绍 vue router借鉴了react router和ui router中所有的优点 官方文档 https router vuejs org 路由的快速开始 定义各页面容器组件 定义路由配置