Vue条件渲染的实战指南:v-if、v-show、v-else、v-else-if的使用技巧详解
Vue.js 是一种用于构建交互式前端界面的开源JavaScript框架,它提供了灵活的条件渲染指令来根据不同的条件来显示或隐藏特定的元素。在Vue中,v-if、v-show、v-else、v-else-if是我们常用的条件渲染指令之一。本文将详细介绍这些指令的用法,并提供相应的代码示例。
v-if 指令用于根据条件来渲染特定的元素。如果条件为真,则元素会被渲染出来,如果条件为假,则元素将不会被渲染。
示例1:
<h1 v-if="show">Hello, World!</h1>
<p v-else>Sorry, the element is hidden.</p>
<script><br>export default {<br> data() {</p><div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>return { show: true }</pre><div class="contentsignin">登录后复制</div></div><div class="contentsignin">登录后复制</div></div><div class="contentsignin">登录后复制</div></div><p>}<br>}<br></script>
在上述示例中,根据show变量的值,如果show为true,则会显示"h1"元素中的文本,如果show为false,则会显示"p"元素中的文本。
v-else 指令用于在v-if之后,可以在同一标签内紧跟着使用,表示与v-if相反的条件。
示例2:
<h1 v-if="show">Hello, World!</h1>
<h3 v-else>Title</h3>
<script><br>export default {<br> data() {</p><div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>return { show: true }</pre><div class="contentsignin">登录后复制</div></div><div class="contentsignin">登录后复制</div></div><div class="contentsignin">登录后复制</div></div><p>}<br>}<br></script>
在上述示例中,当show的值为true时,显示"h1"元素中的文本;当show的值为false时,显示"h3"元素中的文本。
v-show 指令与v-if类似,也用于在特定条件下控制元素的显示与隐藏。不同的是,v-show通过CSS的display属性来切换元素的显示与隐藏,而不是直接删除或添加元素。
示例3:
<h1 v-show="show">Hello, World!</h1>
<p v-show="!show">Sorry, the element is hidden.</p>
<script><br>export default {<br> data() {</p><div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>return { show: true }</pre><div class="contentsignin">登录后复制</div></div><div class="contentsignin">登录后复制</div></div><div class="contentsignin">登录后复制</div></div><p>}<br>}<br></script>
在上述示例中,当show的值为true时,显示"h1"元素中的文本;当show的值为false时,显示"p"元素中的文本。
v-else-if 指令类似于v-else指令,但是它允许我们设置多个连续的条件。它在使用v-if指令和v-else指令时非常有用。
示例4:
<h1 v-if="score >= 90">A+</h1>
<h2 v-else-if="score >= 80">A</h2>
<h3 v-else-if="score >= 70">B</h3>
<h4 v-else-if="score >= 60">C</h4>
<h5 v-else>F</h5>