Vue Router 进阶—过渡动效&数据获取

大家好,我是张浔

本篇文章讲述的是在 Vue2 中使用 Vue Router 的知识,阅读时间大概3分钟

路由进阶你确定不学吗?

前言

经过前几篇的学习,小伙伴学会了如何实现对元素和组件之间过渡的动画效果,是不是感觉挺好玩的,哈哈,发现炫酷的东西都比较吸引人,可是只是这些就满足了吗?经常逛一些教程网站的小伙伴可能发现过在路由跳转之间会有一个过渡动画的效果,比如慢慢消失再慢慢出现的效果,也许还会有一个进度条、loading等等好多好玩的东西,但是当时的你只是去查找资料去了,就没太在意这个东西,也就过去了,那么今天既然看到这篇文章了,如果你对我刚刚所说的感兴趣,请看完这篇文章,一定让你搞明白它具体是怎么实现的,搞不明白找我。

太多的字,小伙伴可能觉得啰嗦,可以直接忽略上面文字看下面动图的效果,这是本篇文章的主题。

路由过渡+进度条效果

GIF 2022-5-15 18-06-14

路由过渡+loading效果

GIF 2022-5-15 18-08-47

看过我这篇 《用一用Vant组件库》文章的小伙伴会觉得上面的动图演示很熟悉,今天的这个案例我进行了改造,不过是自己原生实现的,并没有使用第三方组件库,因为组件库有很多内置的动态效果,不便于演示。

路由过渡动效

那我们就来搞一搞吧,首先去官网 过渡动效 看看是怎么介绍的

image-20220515173701689

看了官网的介绍和示例代码,发现就是用 transition 组件把 router-view 动态组件包裹起来就好了,原来如此的简单,还说 transition 组件的所有功能都可以使用,并没有什么冲突。

对于 router-view 动态组件,小伙伴们肯定知道吧,意思就是路由的出口,路由匹配到的组件将会被渲染在这里,这时,小伙伴看到动态组件,是不是想到了之前我的那一篇 《学一学在Vue2中实现过渡&动画的初始渲染和多个元素and组件过渡的效果》文章,里面讲到多个组件的过渡时,也是使用了动态组件 component ,这时候你想它们有什么不同吗?

我来告诉你,它们俩个最大的不同点就是在于 router-view 是根据路由地址变化,component 而是根据已注册的组件名字变化,听完我的解释,是不是豁然开朗呢?要不眼见为实一下吧,我把讲述多个组件的过渡那篇文章中展示的案例全屏给你们看一下,看看路由地址有没有变化,看下图。

GIF 2022-5-15 17-54-20

看完动图,你会发现我点击微信登录与密码登录的时候,地址栏并没有变化,上面的 Fade、Multiple、Switch、MultipleDemo是通过 router-link 跳转的路由导航,相当于 a 超链接标签,所以路由地址发生了变化,懂了吧。

接下来,就来写路由之间的过渡效果吧,用 transition 组件把 router-view 组件包裹起来,加动画效果就可以了。

代码

通过前言中演示的动图效果,小伙伴们知道我们要实现的是什么效果了,为了后面更好的讲述,我把初步的代码先都放上来,然后再一步一步去修改,这样你能搞明白全部流程。

数据来源均来自后台接口,我先是将 axios 请求进行了二次封装,再引入需要的接口进行请求。

src/api/index.js 文件

// 引入 axios 模块
import axios from 'axios'

// 设置基准地址
axios.defaults.baseURL = 'http://127.0.0.1:3000/api'

// 获取导航列表接口
export const getNavListAPI = () => {
   
    return axios.get('/cate')
}

// 重置数据接口
export const resetAPI = () => {
   
    return axios.get('/
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张浔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值