Vue路由(Vue CLI工程)

news/2024/7/10 1:51:06 标签: vue

文章目录

    • Vue路由
      • Vue Router简述
      • 准备工作
      • 静态路由(即需要手动输入路径才会进行跳转)
      • 动态路由(通过点击按钮或者链接进行跳转)
      • 动态路由的传参
        • 以占位符的方式进行传参
        • 通过函数方式进行传参
      • 嵌套路由
        • 具体实现
      • 文件结构优化
      • 一些小的知识点
        • 前进与后退($router.go(1) & $router.go(-1))
        • 消除请求url中的#

Vue路由

Vue Router简述

  • 简单的说.Vue路由就是动态调用组件的一个东西,它让我们构建单页面应用变得易如反掌。
  • Vue路由包含的功能有:
    1、嵌套的路由/视图表
    2、模块化的、基于组件的路由配置
    3、路由参数、查询、通配符
    4、基于Vue.js过渡系统的视图过渡效果
    5、细粒度的导航控制
    6、带有自动激活的Css class的链接
    7、HTML5历史模式或hash模式,在IE9中自动降级
    8、自定义的滚动条行为

准备工作

  • 通过脚手架创建一个工程vue_router
    在这里插入图片描述

  • 本地安装vue-router
    在这里插入图片描述
    安装成功后可以在package.json中看到依赖这里多出了vue-router
    在这里插入图片描述

静态路由(即需要手动输入路径才会进行跳转)

  • App.vue中配置路由出口
    在这里插入图片描述
  • main.js中引入Vue和VueRouter
    在这里插入图片描述
  • main.js中为模块化工程安装路由功能
    在这里插入图片描述
  • main.js中引入需要动态渲染的组件
    在这里插入图片描述
  • main.js中定义路由表
    在这里插入图片描述
  • main.js中创建路由实例
    在这里插入图片描述
  • main.js中将路由实例与Vue实例进行绑定
    在这里插入图片描述
  • 运行后手动根据请求进行路由跳转
    在这里插入图片描述
    在这里插入图片描述

动态路由(通过点击按钮或者链接进行跳转)

动态路由的步骤是在静态路由的基础上更改App.vue做到的,所以编写路由的步骤同上

  • 方式1(声明式导航):在App.vue通过<router-link>进行声明路由导航
    在这里插入图片描述
    可以在main.js中的路由表中设置默认路由
    在这里插入图片描述

显示效果如下:
在这里插入图片描述
点击不同的链接,会在本页面显示不同的页面内容

  • 方式2(编程式导航):在App.vue中通过编写button+js实现
    在这里插入图片描述

在这里插入图片描述
显示效果如下:
在这里插入图片描述

动态路由的传参

以占位符的方式进行传参

  • 首先,我们需要有一个组件user
    在这里插入图片描述

  • 在main.js中引入组件User
    在这里插入图片描述
    在这里插入图片描述

  • 获取到通过占位符传递的参数
    在User组件的index.vue中通过路由表对象进行获取参数
    在这里插入图片描述
    !!!注意:$route是路由表对象 $router是路由对象
    显示效果如下:
    在这里插入图片描述

通过函数方式进行传参

通过函数方式传参,可以让url中不显示参数的具体内容

  • 首先,在main.js中再针对user组件写一个路由
    在这里插入图片描述
    可以看出未在url处拼接参数
  • 在App.vue中实现通过button+method的方式实现传参
    在这里插入图片描述
    在这里插入图片描述
    这也就是路由name不能重复的原因
    显示效果如下:
    在这里插入图片描述
  • 附加:当有请求参数的时候,通过query获取请求参数
    在_toUser()中添加请求参数
    在这里插入图片描述
    在组件页面显示请求参数
    在这里插入图片描述

当点击按钮进行请求时可以看到请求url发生了改变
在这里插入图片描述

嵌套路由

一个组件是可以嵌套其他组件的,例如我们的Home组件可能想要嵌套其他几个组件

具体实现

  • 预设场景:Home嵌套了Friend和Blog组件

  • Friend组件
    在这里插入图片描述

  • Blog组件
    在这里插入图片描述

  • Home组件编写路由导航及路由出口
    在这里插入图片描述

  • 因为我们需要它在home页面进行显示,所以我们在main.js中对home路由添加Children
    在这里插入图片描述

  • 显示效果如下:
    在这里插入图片描述
    在这里插入图片描述

文件结构优化

通过上述描述我们可以发现,所有对于路由表的操作都在main.js中完成,这样会导致main.js中的内容非常冗余,那么比较好的办法是将main.js中关于路由的部分进行组件化

  • 在src下创建/router/index.js文件
    在这里插入图片描述

  • 将main.js中关于路由的部分剪切到/router/index.js文件中并导出路由实例router
    在这里插入图片描述

  • 在main.js中引用导出的router
    在这里插入图片描述

  • 运行后查看结果
    在这里插入图片描述
    结果与之前一致

一些小的知识点

前进与后退($router.go(1) & $router.go(-1))

  • 正数是前进一步,负数是后退一步,如同返回和前进按钮
  • 我们可以在App.vue中增添一个按钮看下效果
    在这里插入图片描述
    在这里插入图片描述

消除请求url中的#

  • 可以发现我们总是在请求url中看到#
    在这里插入图片描述
    这是因为Vue-router默认使用hash模式,使用url的hash模式来模拟一个完整的url,于是当url改变时,页面就不会重新加载。
  • 那么当在main.js的路由实例更改模式后后,就能够进行消除
    在这里插入图片描述

http://www.niftyadmin.cn/n/1756386.html

相关文章

Vue-Resource(json-server模拟数据)

文章目录Vue-Resource简述Vue-Resource简介Vue-Resource特点Vue-Resource使用准备工作开始造Vue-Resource简述 一如往常&#xff0c;学习怎么用之前必须了解这是个什么东西 Vue-Resource简介 vue-resource是Vue.js的一款插件&#xff0c;它可以通过XMLHttpRequest或JSONP发起…

Axios(Vue-Resource的取代者、拦截器)

文章目录axios简述Axios是干啥使的Axios功能特点传统AJAX & jQuery & Vue-ResourceAxios基础使用&#xff08;基于json-server&#xff09;准备工作安装开始使用直接使用&#xff08;局部使用&#xff09;全局引用实践Axios的拦截器使用项目结构改进axios简述 老样子&…

SpringBoot整合框架(前端视图JSP,MyBatis)

文章目录SpringBoot整合JSP核心步骤具体实现SpringBoot整合MyBatis核心步骤具体实现MyBatis分页查询MyBatis事务处理关于静态资源thymleaf配置静态资源jsp配置静态资源SpringBoot整合JSP SpringBoot默认是支持thymeleaf模板的&#xff0c;如果需要使用jsp就需要手动添加 核心…

SpringBoot整合Redis(SpringBootTest及RedisTemplate)

文章目录前情提要SpringBoot整合Redis创建SpringBoot项目pom.xml文件添加依赖及相关配置appliaction.yml设置redis的服务器及端口号编写启动类RedisApplication使用SpringBootTest做单元测试附加&#xff1a;设置RedisTemplate的序列化前情提要 之前学习了使用Java链接Redis数…

Redis集群(读写分离、哨兵机制、Cluster集群)

文章目录概念概述一、主从复制原理优点缺点同步原理二、哨兵&#xff08;Sentinel&#xff09;机制原理哨兵的三大工作任务优点缺点三、Redis内置集群&#xff08;Cluster模式&#xff09;原理集群搭建&#xff08;实践出真知嘛&#xff0c;加油&#xff01;朋友们&#xff09;…

关于每次启动Redis集群都要升级Ruby这件事

之前不是写了redis cluster集群的使用方式嘛&#xff0c;过了好久&#xff0c;重新启动集群准备要的时候&#xff0c;发现启动不了了 大概学计算机的能懂这种无奈又绝望的感觉&#xff0c;明明上次还是好好的&#xff0c;可是再一次的时候就是不可以了&#xff0c;就是坏了&…

SpringBoot 开启Redis缓存

文章目录Redis缓存主要步骤具体实践整体目录结构pom.xml添加依赖yml文件里配置Redis集群编写RedisConfig配置序列化及缓存配置&#xff0c;添加缓存注解编写业务Controller编写启动类检验结果之前不是说过Redis可以当作缓存用嘛 现在我们就配置一下SpringBoot使用Redis的缓存 R…

消息队列MQ快速入门(概念、RPC、MQ实质思路、队列介绍、队列对比、应用场景)

文章目录消息队列是个啥概念解释背景了解消息队列实质思路MQ原始模型原始模型的进化各类消息队列ActiveMQRabbitMQKafkaRocketMQZeroMQ怎么选&#xff08;RabbitMQ/ActiveMQ/RocketMQ/Kafla&#xff09;消息队列应用场景异步处理应用解耦流量削峰日志处理消息通讯消息队列是个啥…