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

摘要:过渡动效 是基本的动态组件,所以我们可以用 组件给它增加少量过渡效果: 单个路由的过渡上面的用法会给所有路由设置一样的过渡效果,假如你想让每个路

过渡动效

<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' }}//前台全栈学习交流圈:866109386//面向1-3经验年前台开发人员//帮助突破技术瓶颈,提升思维能力

数据获取

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

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

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

导航完成后获取数据

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

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

在导航完成前获取数据

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

  • 全部评论(0)
最新发布的资讯信息
【系统环境|】极客时间-数据分析实战45讲【完结】(2021-09-02 16:26)
【系统环境|windows】字节跳动前台面试题解析:盛最多水的容器(2021-03-20 21:27)
【系统环境|windows】DevOps敏捷60问,肯定有你想理解的问题(2021-03-20 21:27)
【系统环境|windows】字节跳动最爱考的前台面试题:JavaScript 基础(2021-03-20 21:27)
【系统环境|windows】JavaScript 的 switch 条件语句(2021-03-20 21:27)
【系统环境|windows】解决 XML 数据应用实践(2021-03-20 21:26)
【系统环境|windows】20个编写现代CSS代码的建议(2021-03-20 21:26)
【系统环境|windows】《vue 3.0探险记》- 运行报错:Error:To install them, you can run: npm install --save core-js/modules/es.arra...(2021-03-20 21:24)
【系统环境|windows】浅谈前台可视化编辑器的实现(2021-03-20 21:24)
【系统环境|windows】产品经理入门迁移学习指南(2021-03-20 21:23)
手机二维码手机访问领取大礼包
返回顶部