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中String和StringBuffer的速度之争
Apr 01 Javascript
读jQuery之六 缓存数据功能介绍
Jun 21 Javascript
jquery中的 $(&quot;#jb51&quot;)与document.getElementById(&quot;jb51&quot;) 的区别
Jul 26 Javascript
jQuery中eq()方法用法实例
Jan 05 Javascript
JS判断是否长按某一键的方法
Mar 02 Javascript
js获取指定时间的前几秒
Apr 05 Javascript
ES6字符串模板,剩余参数,默认参数功能与用法示例
Apr 06 Javascript
微信小程序之网络请求简单封装实例详解
Jun 28 Javascript
Vue Cli3 创建项目的方法步骤
Oct 15 Javascript
vue中的面包屑导航组件实例代码
Jul 01 Javascript
修改layui的后台模板的左侧导航栏可以伸缩的方法
Sep 10 Javascript
JS中箭头函数与this的写法和理解
Jan 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笔记 字符串处理
2010/10/19 PHP
php导入csv文件碰到乱码问题的解决方法
2014/02/10 PHP
PHP会话控制实例分析
2016/12/24 PHP
TP5框架实现一次选择多张图片并预览的方法示例
2020/04/04 PHP
Mootools 1.2教程 事件处理
2009/09/15 Javascript
jQuery 数据缓存data(name, value)详解及实现
2010/01/04 Javascript
js实现GridView单选效果自动设置交替行、选中行、鼠标移动行背景色
2010/05/27 Javascript
nodejs实用示例 缩址还原
2010/12/28 NodeJs
js读取注册表的键值示例
2013/09/25 Javascript
JavaScript中双叹号!!作用示例介绍
2014/09/21 Javascript
angular.foreach 循环方法使用指南
2015/01/06 Javascript
js实现从数组里随机获取元素
2015/01/12 Javascript
深入浅出 jQuery中的事件机制
2016/08/23 Javascript
详解JavaScript模块化开发
2016/12/04 Javascript
jquery pagination分页插件使用详解(后台struts2)
2017/01/22 Javascript
五步轻松实现JavaScript HTML时钟效果
2020/03/25 Javascript
angularJs提交文本框数据到后台的方法
2018/10/08 Javascript
JavaScript箭头函数中的this详解
2019/06/19 Javascript
JavaScript实现单图片上传并预览功能
2019/09/30 Javascript
JavaScript闭包相关知识解析
2019/10/19 Javascript
JS实现移动端可折叠导航菜单(现代都市风)
2020/07/07 Javascript
js实现三角形粒子运动
2020/09/22 Javascript
微信小程序实现购物车功能
2020/11/18 Javascript
[50:21]Liquid vs Winstrike 2018国际邀请赛小组赛BO2 第二场
2018/08/19 DOTA
用Python进行行为驱动开发的入门教程
2015/04/23 Python
python中列表和元组的区别
2017/12/18 Python
django中使用POST方法获取POST数据
2019/08/20 Python
Python yield生成器和return对比代码实例
2020/04/20 Python
BeautifulSoup中find和find_all的使用详解
2020/12/07 Python
python通过cython加密代码
2020/12/11 Python
小米乌克兰网上商店:Xiaomi.UA
2019/10/29 全球购物
Kipling澳洲官网:购买凯浦林包包
2020/12/17 全球购物
广告业务员岗位职责
2014/02/06 职场文书
国际会计专业求职信
2014/08/04 职场文书
工厂采购员岗位职责
2015/04/07 职场文书
安全教育片观后感
2015/06/17 职场文书