Vue 路由 过渡动效 数据获取方法


Posted in Javascript onJuly 31, 2018

过渡动效

<router-view> 是基本的动态组件,所以我们可以用 <transition> 组件给它添加一些过渡效果:

<transition>
 <router-view></router-view>
</transition>

单个路由的过渡

上面的用法会给所有路由设置一样的过渡效果,如果你想让每个路由组件有各自的过渡效果,可以在各路由组件内使用 <transition> 并设置不同的 name。

基于路由的动态过渡

还可以基于当前路由与目标路由的变化关系,动态设置过渡效果

<!-- 使用动态的 transition name -->
<transition :name="transitionName">
 <router-view></router-view>
</transition>
// 接着在父组件内
// watch $route 决定使用哪种过渡
watch: {
 '$route' (to, from) {
  const toDepth = to.path.split('/').length
  const fromDepth = from.path.split('/').length
  this.transitionName = toDepth < fromDepth ? 'slide-right' : 'slide-left'
 }
}

数据获取

进入某个路由后,需要从服务器获取数据。例如,在渲染用户信息时,你需要从服务器获取用户的数据。我们可以通过两种方式来实现:

1.导航完成之后获取:先完成导航,然后在接下来的组件生命周期钩子中获取数据。在数据获取期间显示『加载中』之类的指示。

2.导航完成之前获取:导航完成前,在路由的 enter 钩子中获取数据,在数据获取成功后执行导航。

导航完成后获取数据

当你使用这种方式时,我们会马上导航和渲染组件,然后在组件的 created 钩子中获取数据。这让我们有机会在数据获取期间展示一个 loading 状态,还可以在不同视图间展示不同的 loading 状态。

假设我们有一个 Post 组件,需要基于 $route.params.id 获取文章数据:

在导航完成前获取数据

通过这种方式,我们在导航转入新的路由前获取数据。我们可以在接下来的组件的 beforeRouteEnter 钩子中获取数据,当数据获取成功后只调用 next 方法。

下面是地址:https://github.com/haxxk/xu_s...
https://github.com/haxxk/xu_s...

总结

以上所述是小编给大家介绍的Vue 路由 过渡动效 数据获取方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
JQuery slideshow的一个小问题(如何发现及解决过程)
Feb 06 Javascript
等待指定时间后自动跳转或关闭当前页面的js代码
Jul 09 Javascript
jquery库或JS文件在eclipse下报错问题解决方法
Apr 17 Javascript
document.forms用法示例介绍
Jun 26 Javascript
jQuery链式操作实例分析
Nov 16 Javascript
Angular2使用jQuery的方法教程
May 28 jQuery
关于express与koa的使用对比详解
Jan 25 Javascript
关于element-ui的隐藏组件el-scrollbar的使用
May 29 Javascript
layui prompt 设置允许空白提交的方法
Sep 24 Javascript
Vue2.0 ES6语法降级ES5的操作
Oct 30 Javascript
JavaScript中isPrototypeOf函数
Nov 07 Javascript
JavaScript执行机制详细介绍
Dec 06 Javascript
JS实现判断图片是否加载完成的方法分析
Jul 31 #Javascript
JavaScript+Canvas实现彩色图片转换成黑白图片的方法分析
Jul 31 #Javascript
vue实现word,pdf文件的导出功能
Jul 31 #Javascript
在create-react-app中使用css modules的示例代码
Jul 31 #Javascript
详解使用create-react-app添加css modules、sasss和antd
Jul 31 #Javascript
jQuery实现点击自身以外区域关闭弹出层功能完整示例【改进版】
Jul 31 #jQuery
Vue导出页面为PDF格式的实现思路
Jul 31 #Javascript
You might like
PHP+Session防止表单重复提交的解决方法
2018/04/09 PHP
PHP程序员学习使用Swoole的理由
2018/06/24 PHP
JQuery 学习笔记 选择器之五
2009/07/23 Javascript
js中的window.open返回object的错误的解决方法
2009/08/15 Javascript
用JavaScript实现类似于ListBox功能示例代码
2014/03/09 Javascript
js enter键激发事件实例代码
2016/08/17 Javascript
利用js判断手机是否安装某个app的多种方案
2017/02/13 Javascript
bootstrap paginator分页插件的两种使用方式实例详解
2017/11/14 Javascript
Angular4自制一个市县二级联动组件示例
2017/11/21 Javascript
详解angular如何调用HTML字符串的方法
2018/06/30 Javascript
看看“疫苗查询”小程序有温度的代码
2018/07/31 Javascript
在vue中获取token,并将token写进header的方法
2018/09/26 Javascript
JS变量提升及函数提升实例解析
2020/09/03 Javascript
[45:06]完美世界DOTA2联赛PWL S2 Magma vs InkIce 第二场 11.28
2020/12/02 DOTA
Python re模块介绍
2014/11/30 Python
Python实现的微信好友数据分析功能示例
2018/06/21 Python
Python 调用 Outlook 发送邮件过程解析
2019/08/08 Python
Python 去除字符串中指定字符串
2020/03/05 Python
Python使用graphviz画流程图过程解析
2020/03/31 Python
基于jupyter代码无法在pycharm中运行的解决方法
2020/04/21 Python
Python新手如何理解循环加载模块
2020/05/29 Python
聊聊Python pandas 中loc函数的使用,及跟iloc的区别说明
2021/03/03 Python
一款纯css3实现的响应式导航
2014/10/31 HTML / CSS
HTML5画渐变背景图片并自动下载实现步骤
2013/11/18 HTML / CSS
Mamas & Papas沙特阿拉伯:英国最受欢迎的婴儿品牌
2017/11/20 全球购物
新加坡最佳婴儿用品店:Mamahood.com.sg
2018/08/26 全球购物
Vivo俄罗斯官方在线商店:中国智能手机品牌
2019/10/04 全球购物
客服工作职责
2013/12/11 职场文书
2014年幼儿园教研工作总结
2014/12/04 职场文书
廉政承诺书
2015/01/19 职场文书
2015年信访工作总结
2015/04/07 职场文书
员工加薪申请报告
2015/05/15 职场文书
高中家长意见怎么写
2015/06/03 职场文书
我们认为中短波广播场强仪的最佳组合
2022/04/05 无线电
SpringBoot集成MongoDB实现文件上传的步骤
2022/04/18 MongoDB
数据设计之权限的实现
2022/08/05 MySQL