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插件教程
Aug 25 Javascript
JS中引用百度地图并将百度地图的logo和信息去掉
Sep 29 Javascript
JavaScript简单实现鼠标移动切换图片的方法
Feb 23 Javascript
jQuery四种选择器使用及示例
Jun 05 Javascript
jquery select2的使用心得(推荐)
Dec 04 Javascript
bootstrap表单按回车会自动刷新页面的解决办法
Mar 08 Javascript
node安装--linux下的快速安装教程
Mar 21 Javascript
使用bootstrap插件实现模态框效果
May 10 Javascript
jquery.uploadView 实现图片预览上传功能
Aug 10 jQuery
vue中datepicker的使用教程实例代码详解
Jul 08 Javascript
JavaScript canvas绘制渐变颜色的矩形
Feb 18 Javascript
react antd表格中渲染一张或多张图片的实例
Oct 28 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
JS 网站性能优化笔记
2011/05/24 PHP
php readfile下载大文件失败的解决方法
2017/05/22 PHP
PHP的简单跳转提示的实现详解
2019/03/14 PHP
利用jQuery操作对象数组的实现代码
2011/04/27 Javascript
jquery.post用法示例代码
2014/01/03 Javascript
基于豆瓣API+Angular开发的web App
2015/01/02 Javascript
js实现双击图片放大单击缩小的方法
2015/02/17 Javascript
详细解密jsonp跨域请求
2015/04/15 Javascript
javascript搜索框效果实现方法
2015/05/14 Javascript
JS的框架Polymer中的dom-if和is属性使用说明
2015/07/29 Javascript
js判断当前页面在移动设备还是在PC端中打开
2016/01/06 Javascript
JavaScript 对象字面量讲解
2016/06/06 Javascript
js防阻塞加载的实现方法
2016/09/09 Javascript
用Vue.js实现监听属性的变化
2016/11/17 Javascript
js处理层级数据结构的方法小结
2017/01/17 Javascript
Angular 4.x 路由快速入门学习
2017/05/03 Javascript
关于Angularjs中自定义指令一些有价值的细节和技巧小结
2018/04/22 Javascript
浅谈开发eslint规则
2018/10/01 Javascript
在Bootstrap开发框架中使用dataTable直接录入表格行数据的方法
2018/10/25 Javascript
原来JS还可以这样拆箱转换详解
2019/02/01 Javascript
VUE搭建手机商城心得和遇到的坑
2019/02/21 Javascript
JsonProperty 的使用方法详解
2019/10/11 Javascript
解决vue数据不实时更新的问题(数据更改了,但数据不实时更新)
2020/10/27 Javascript
[01:34]DAC2018主赛事第四日五佳镜头 Gh巨牙海民助Miracle-死里逃生
2018/04/07 DOTA
Python3.x和Python2.x的区别介绍
2013/02/12 Python
python 获取本机ip地址的两个方法
2013/02/25 Python
Pyramid将models.py文件的内容分布到多个文件的方法
2013/11/27 Python
Python操作列表的常用方法分享
2014/02/13 Python
python ---lambda匿名函数介绍
2019/03/13 Python
python日志模块logbook使用方法
2019/09/19 Python
Python TCP通信客户端服务端代码实例
2019/11/21 Python
python 用opencv实现霍夫线变换
2020/11/27 Python
ASICS印度官方网站:日本专业运动品牌
2020/06/20 全球购物
敬老院义诊活动总结
2015/05/07 职场文书
虚拟机linux端mysql数据库无法远程访问的解决办法
2021/05/26 MySQL
pytorch finetuning 自己的图片进行训练操作
2021/06/05 Python