我的vuejs动画/过渡在路径更改方面滞后。

时间:2018-11-16 01:40:52

标签: javascript css vue.js vue-router

enter image description here

我正在使用vue和vue-router作为我的投资组合。我添加了简单的“淡入淡出”动画。而且我的动画落后了。

我的App.vue组件:

<template>
    <div id="app">
        <Square/>
        <Navbar/>
    </div>
</template>

我的Square.vue组件:

<template>
    <div id="square">
        <transition name="fade">
            <router-view></router-view>
        </transition>
    </div>
</template>
<style>
    .fade-enter-active, .fade-leave-active {
      transition: opacity 0.5s;
    }
    .fade-enter, .fade-leave-to{
      opacity: 0;
    }
 </style>

我的路线文件:

import Vue from 'vue';
import Router from 'vue-router';
import Hello from './views/Hello.vue';

Vue.use(Router);

export default new Router({
  routes: [
    {
      path: '/',
      name: 'hello',
      component: Hello,
    },
    {
      path: '/i-am',
      name: 'I am',
      component: () => import( 
'./views/About.vue'),
    },
    {
      path: '/i-use',
      name: 'I use',
      component: () => import( 
'./views/Using.vue'),
    },
   ],
});

This is project structure

我认为这不是因为动画风格。新内容的渲染速度快于旧组件的破坏速度。

1 个答案:

答案 0 :(得分:1)

VueJS Transition Component具有这个很酷的道具,称为mode。 这样可以在销毁以前的组件时增加平滑效果。

<transition name="fade" mode="out-in">
  <!-- ... the buttons ... -->
</transition>

https://vuejs.org/v2/guide/transitions.html#Transition-Modes