2017-11-01 3 views
0

나는이 같은 페이지가 :vue, 동적 구성 요소의 애니메이션이 트리거되지 않습니까?

<div class="collapse navbar-collapse" id="myNavbar"> 
       <ul class="nav navbar-nav"> 
        <li> 
         <a href="#" @click="currentView='create'">Create</a> 
        </li> 
        <li> 
         <a href="#" @click="currentView='how'">How</a> 
        </li> 
        <li> 
         <a href="#" @click="currentView='about'">About</a> 
        </li> 
        <li> 
         <a href="#" @click="currentView='youtube'">Videos</a> 
        </li> 
       </ul> 
      </div> 
     </div> 
    </nav> 
    <keep-alive> 
     <component :is="currentView" transition="fade" transition-mode="out-in"></component> 
    </keep-alive> 
</div> 

JS를 :

import Vue from 'vue'; 
import VueRouter from 'vue-router'; 
import Create from '../components/homepage/create.vue'; 
import How from '../components/homepage/how.vue'; 
import About from '../components/homepage/about.vue'; 
import Youtube from '../components/homepage/youtube.vue'; 
import Navigation from '../components/navigation.vue'; 

Vue.component('navigation', Navigation) 
Vue.component('create', Create) 
Vue.component('how', How) 
Vue.component('about', About) 
Vue.component('youtube', Youtube) 

new Vue({ 
    el: '#app', 
    data: { 
     currentView: 'create' 
    } 
}) 

말대꾸 :

.fade-transition { 
    transition: opacity 0.2s ease; 
} 

.fade-enter, 
.fade-leave { 
    opacity: 0; 
} 

그 코드가 분명히 그들은 전환 할 때 애니메이션을 가지고 구성 요소를 확인해야합니다. 그들은 애니메이션없이 전환하지만, 왜 이런 일이 일어나서 뭔가 빠졌는가?

답변

0
<keep-alive> 
    <transition name="fade" mode="out-in"> 
     <component :is="currentView"></component> 
    </transition> 
</keep-alive> 

이것이 작동하는지 확인하십시오. 또한 CSS가 포함되어 있는지 확인하십시오.

+0

흠, 어떻게 작동합니까, 왜 내 방식대로 작동하지 않았습니까? 분명히 그것은 유효한 메서드입니다 // 6s로 CSS 전환을 변경하면 정확하게 편집되지 않습니다. 차이는 없습니다. 첨부 파일이 –

+0

인 경우 발생합니다. 전환을 제거하면 흰색으로 깜박이고 구성 요소가 변경됩니다. 그래서 무언가가 효과가 있지만 완전하지는 않습니다. –

+0

구성 요소에는 transition-name 및 transition-mode props가 없기 때문에 (적어도 설명서에는 언급이 없습니다.) 타이밍을 변경하는 경우에는 문제가 없습니다. 스 니펫을 만들 수 있습니까? – KiloByte

관련 문제