Vue-Router 路由及路由嵌套的学习,缓存路由,

路由的概念

Vue Router 是 Vue.js 官方的路由管理器。它和 Vue.js 的核心深度集成,让构建单页面应用变得非常简单。
通过根据不同的请求路径,切换显示不同组件进行渲染页面。
通过nodeJs下载 Vue和vue-router
在这里插入图片描述
注意:通过router-link 标签会默认渲染出a标签来其中通过to属性指定跳转链接,不用带上#

在这里插入图片描述
简单的效果如下
在这里插入图片描述

运用vue-router组件的学习

效果:
在这里插入图片描述
第一步先用nodejs拉去vue-router

npm install vue-router

第二步建立新闻和关于我们的页面

;(function(){
const templete=``
window.News={
     templete,
}
)()

在这里插入图片描述
在这里插入图片描述
第三步建立左侧导航栏列表
在这里插入图片描述
第四建立路由转换
在这里插入图片描述
第五建立渲染的位置
在这里插入图片描述
第六在index.html页面引入对应的Js和加入router
在这里插入图片描述
效果
在这里插入图片描述

tag=“dev” ,active-class,exact的使用

tag
类型: string
默认值: “a”
有时候想要 < router-link > 渲染成某种标签,例如 < li> 于是我们使用 tag prop 类指定何种标签,同样它还是会监听点击,触发导航。
router-link 默认渲染出的是a标签, tag="div"可以使用tag渲染出其他的标签,tag="div"也就是div标签

active-class

类型: string

默认值: “router-link-active”

设置链接激活时使用的 CSS 类名。默认值可以通过路由的构造选项 linkActiveClass 来全局配置。

exact

类型: boolean

默认值: false

“是否激活”默认类名的依据是包含匹配。 举个例子,如果当前的路径是 /a 开头的,那么 < router-link to="/a"> 也会被设置 CSS 类名。
按照这个规则,每个路由都会激活 < router-link to="/">!想要链接使用“精确匹配模式”,则使用 exact 属性:

在这里插入图片描述
在这里插入图片描述
最后实现的效果(不看第一个蓝色的,下面三个采用router-link写的tag定向的li,点到哪个哪个就成蓝色)
在这里插入图片描述

嵌套路由案例的学习

目的如下
实现下面的跳转

在这里插入图片描述
在这里插入图片描述
步骤一
定义体育(Sport.js)和科技(Techo.js)的两个组件
在这里插入图片描述
步骤二将体育和科技的li按钮修改
在这里插入图片描述
步骤三在路由中找到news的跳转下面,定义children属性,它和routes用法一样
在这里插入图片描述
在这里插入图片描述
在index.html中加入路由组件
在这里插入图片描述

缓存路由

当输入框输入值时候,切换其他页面,回来的之后输入值不会改变,将输入的组件缓存下来
在这里插入图片描述
使用< keep-alive>可以对渲染组件< router -view >进行缓存

在这里插入图片描述

路由组件传递数据

在这里插入图片描述
第一步先将列表通过axios数据拿到
json数据如下所示
在这里插入图片描述
通过axios拿到数据并将数据赋值给data定义的数组
在这里插入图片描述
在这里插入图片描述
效果如图
在这里插入图片描述
第二部将要转换显示的下面部分抽取成一个组件

;(function(){
const templete=`变换的组件内容`
window.Sportmain={
templete,
}
)()

第三部分在router下面进行路由配置
在news下面建立一个新的 children子组件
在这里插入图片描述
第四步对Sportmain组件进行操作
效果如下所示
在这里插入图片描述
this.$route.params.id可以拿到路由变化的id
在这里插入图片描述
运用

const XXX=response.data,来承接ajax获取的json数据
this.OO=XXX.find(function(detail){
//运用find方法返回一组,id与json数组id相同的一组数据
   return detail.id===this.id
)

在这里插入图片描述

编程式路由导航

this.$router.push(path) 相当于点击路由链接(后退1步,会返回当前路由界面)
this.$router.replace(path) 用新路由替换当前路由(后退1步,不可返回到当前路由界面)
this.$router.back()    后退回上一个记录路由
this.$router.go(n) 参数 n 指定步数
this.$router.go(-1) 后退回上一个记录路由
this.$router.go(1) 向前进下一个记录路由

参照手机端的前进后退按钮
在这里插入图片描述

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值