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 相关文章推荐
我遇到的参数传递中 双引号单引号嵌套问题
Feb 11 Javascript
js中根据字数截取字符串,不能截断url
Jan 12 Javascript
jQuery+css+html实现页面遮罩弹出框
Mar 21 Javascript
CSS javascript 结合实现悬浮固定菜单效果
Aug 23 Javascript
AngularJS入门(用ng-repeat指令实现循环输出
May 05 Javascript
jquery 全选、全不选、反选效果的实现代码【推荐】
May 05 Javascript
JS实现DIV高度自适应窗口示例
Feb 16 Javascript
基于 Vue 的树形选择组件的示例代码
Aug 18 Javascript
JS实现的将html转为pdf功能【基于浏览器端插件jsPDF】
Feb 06 Javascript
详解JSON和JSONP劫持以及解决方法
Mar 08 Javascript
js回调函数原理与用法案例分析
Mar 04 Javascript
JavaScript 对象创建的3种方法
Nov 17 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解析http获取的json字符串变量总是空白null
2015/03/02 PHP
TFDN图片播放器 不错自动播放
2006/10/03 Javascript
几个有趣的Javascript Hack
2010/07/24 Javascript
jquery聚焦文本框与扩展文本框聚焦方法
2012/10/12 Javascript
document.write的几点使用心得
2014/05/14 Javascript
Javascript学习笔记之数组的遍历和 length 属性
2014/11/23 Javascript
举例简介AngularJS的内部语言环境
2015/06/17 Javascript
JavaScript实现删除,移动和复制文件的方法
2015/08/05 Javascript
z-blog SyntaxHighlighter 长代码无法换行解决办法(基于jquery)
2015/11/18 Javascript
jQuery+php实时获取及响应文本框输入内容的方法
2016/05/24 Javascript
Web打印解决方案之普通报表打印功能
2016/08/29 Javascript
前端自动化开发之Node.js的环境搭建教程
2017/04/01 Javascript
javascript实现二叉树遍历的代码
2017/06/08 Javascript
详解vue添加删除元素的方法
2018/06/30 Javascript
Vue结合后台导入导出Excel问题详解
2019/02/19 Javascript
koa2+vue实现登陆及登录状态判断
2019/08/15 Javascript
使用Vue.set()方法实现响应式修改数组数据步骤
2019/11/09 Javascript
Vue 401配合Vuex防止多次弹框的案例
2020/11/11 Javascript
Python数据类型详解(一)字符串
2016/05/08 Python
python中函数总结之装饰器闭包详解
2016/06/12 Python
python 出现SyntaxError: non-keyword arg after keyword arg错误解决办法
2017/02/14 Python
详解Python函数式编程—高阶函数
2019/03/29 Python
python爬虫爬取笔趣网小说网站过程图解
2019/11/18 Python
TensorFlow Saver:保存和读取模型参数.ckpt实例
2020/02/10 Python
涂鸦板简单实现 Html5编写属于自己的画画板
2016/07/05 HTML / CSS
Needle & Thread官网:英国仙女品牌
2018/01/13 全球购物
如何用Java实现列出某个目录下的所有子目录
2015/07/20 面试题
给定一个时间点,希望得到其他时间点
2013/11/07 面试题
档案接收函
2014/01/13 职场文书
电子专业自荐信
2014/07/01 职场文书
关于感恩的演讲稿200字
2014/08/26 职场文书
党员教师个人对照检查材料范文
2014/09/25 职场文书
2015年保卫科工作总结
2015/05/14 职场文书
你真的了解PHP中的引用符号(&)吗
2021/05/12 PHP
总结高并发下Nginx性能如何优化
2021/11/01 Servers
Python中tqdm的使用和例子
2022/09/23 Python