Вы можете установить "div box" на boolean
значение и затем создать метод, который переключает boolean
между true/false
примерно так:
Шаблон:
<div id="app">
<transition name="fade" mode="out-in">
<div v-if="boxA" key="boxA">Div A</div>
<div v-else key="boxB">Div B</div>
</transition>
<button @click="toggleBoxes">Toggle div boxes!</button>
</div>
JavaScript:
new Vue({
el: "#app",
data: {
boxA: true
},
methods: {
toggleBoxes() {
this.boxA = !this.boxA;
}
}
})
Редактировать:
Что касается <transition>
, при переключении между элементами с одинаковым именем тега вы должны указать Vue что они являются отдельными элементами, предоставляя им уникальные ключевые атрибуты (key='<uniqueKey>'
) элементам тега , вы можете прочитать об этом здесь .
Вы можете проверить этот пример рабочего кода .
Однако, если вы все еще хотитеиспользуйте две кнопки для переключения <div>
, отметьте этот код вместо.
Кроме того, я настоятельно рекомендуючитать официальную документацию Условный рендеринг с Vuejs .