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 相关文章推荐
JavaScript 全角转半角部分
Oct 28 Javascript
javascript 仿QQ滑动菜单效果代码
Sep 03 Javascript
jquery默认校验规则整理
Mar 24 Javascript
基于jquery实现简单的分页控件
Mar 17 Javascript
用js实现放大镜的效果的简单实例
May 23 Javascript
Angular.js基础学习之初始化
Mar 10 Javascript
gulp教程_从入门到项目中快速上手使用方法
Sep 14 Javascript
关于echarts在节点显示动态数据及添加提示文本所遇到的问题
Apr 20 Javascript
Vuex的热更替如何实现
Jun 05 Javascript
JS变量提升及函数提升实例解析
Sep 03 Javascript
Vue this.$router.push(参数)实现页面跳转操作
Sep 09 Javascript
swiper自定义分页器的样式
Sep 14 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获得用户使用的代理服务器ip即真实ip
2006/12/31 PHP
PHP语法速查表
2007/01/02 PHP
php读取富文本的时p标签会出现红线是怎么回事
2014/05/13 PHP
php实现数组中出现次数超过一半的数字的统计方法
2018/10/14 PHP
解决Laravel 使用insert插入数据,字段created_at为0000的问题
2019/10/11 PHP
jQuery 操作下拉列表框实现代码
2010/02/22 Javascript
JQuery,Extjs,YUI,Prototype,Dojo 等JS框架的区别和应用场景简述
2010/04/15 Javascript
javascript JSON操作入门实例
2010/04/16 Javascript
用jquery实现输入框获取焦点消失文字
2013/04/27 Javascript
Javascript高级技巧分享
2014/02/25 Javascript
一行命令搞定node.js 版本升级
2014/07/20 Javascript
AngularJS入门教程之Hello World!
2014/12/06 Javascript
nodejs爬虫抓取数据乱码问题总结
2015/07/03 NodeJs
JavaScript计算器网页版实现代码分享
2016/07/15 Javascript
Vue项目安装插件并保存
2019/01/28 Javascript
解决vue watch数据的方法被调用了两次的问题
2020/11/07 Javascript
Python函数中的函数(闭包)用法实例
2016/03/15 Python
Python中强大的命令行库click入门教程
2016/12/26 Python
解决Python下json.loads()中文字符出错的问题
2018/12/19 Python
Python @property使用方法解析
2019/09/17 Python
Python TCPServer 多线程多客户端通信的实现
2019/12/31 Python
解决python父线程关闭后子线程不关闭问题
2020/04/25 Python
基于python实现上传文件到OSS代码实例
2020/05/09 Python
详解css3自定义滚动条样式写法
2017/12/25 HTML / CSS
a标签下载链接的简单实现
2016/09/13 HTML / CSS
美国网上鞋城:Shoeline.com
2016/11/17 全球购物
10条PHP编程习惯
2014/05/26 面试题
JDK安装目录下有哪些内容
2014/08/25 面试题
秋季红领巾广播稿
2014/01/27 职场文书
志愿者活动总结范文
2014/04/26 职场文书
购房协议书范本(无房产证)
2014/10/07 职场文书
2014年采购部工作总结
2014/11/20 职场文书
2015新员工试用期工作总结
2014/12/12 职场文书
2015年三好一满意工作总结
2015/07/24 职场文书
2016年社会管理综治宣传月活动总结
2016/03/16 职场文书
SpringBoot整合Minio文件存储
2022/04/03 Java/Android