[英]vue.js - Conditional rendering after variable change
一旦布爾值( waiting
)更改為 true,我正在嘗試渲染一個新元素。 但是,我已經意識到,一旦我的代碼出現一條v-if
語句,我就無法轉換到另一條v-if
語句。 由於布爾值在第一個v-if
完成之前不會改變,一旦前者完成,轉換到第二個v-if
的最佳方法是什么? 我不能將代碼直接添加到那里,因為轉換取決於輸入。
我考慮過重定向到另一個頁面,但我想將我的變量保存在一個地方。
<template>
<transition name="fade">
<div class="home" v-if="!secondplayer">
<div class="inner">
<img class="responsive" src="/static/mask.png" alt="Responsive image" />
<h1>How well do you understand the lyrics in Hamilton?</h1>
<br />
<p>Invite a second player by sending them this link: <u>{{url}}</u>.</p>
</div>
</div>
<div class="play" v-if="secondplayer">
<div v-if="!waiting">
<div class="container hamilton--header--text">
<h1><i>Test your understanding of Hamilton lyrics</i></h1>
<div class="columns hamilton--inner">
<div class="column is-half left">
<p class="title">Player 1</p>
<p class="subtitle">Score: {{playerdata.one.score}}</p>
</div>
<div v-if="secondplayer" class="column is-half right">
<p class="title">Player 2</p>
<p class="subtitle">Score: {{playerdata.two.score}}</p>
</div>
</div>
<div class="hamilton--lyrics--text">
<p>{{question.lyric}}
</p>
<div class="hamilton--answers">
<a v-bind:class="{ 'wronganswer': hasAnswered && !item.correct, 'correctanswer': hasAnswered && item.correct}" @click="checkAnswer(item)" v-for="(item, index) in options">{{item.name}}</a>
</div>
</div>
</div>
</div>
<div v-if="waiting">
<div class="container">
<h1>Waiting for the other player to finish...</h1>
<img src="/static/Spinner.gif">
</div>
</div>
</div>
<div class="gameOver" v-if="winMessage">
<div>
<div class="container">
<h1>{{winMessage}}</h1>
<vue-simple-spinner size="big" message="Loading..."></vue-simple-spinner>
</div>
</div>
</div>
</transition>
</template>
您需要應用過渡 css:
例子:
.fade-enter-active { /* <<transition name>>-<<transition class>> */
transition: all .3s ease;
}
.fade-leave-active {
transition: all .8s cubic-bezier(1.0, 0.5, 0.8, 1.0);
}
查看過渡類以獲取更多詳細信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.