vue.js

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > javascript类库 > vue.js > Vue的条件判断

Vue的条件判断问题及说明

作者:落雪小轩韩

文章主要介绍了Vue中的v-if、v-else-if和v-else的等这三种指令的使用方法和场景,还对比了v-if和v-show的区别,并提供了实际开发中选择v-if或v-show的的建议

Vue的条件判断

​1.vue的条件判断:

2.指令v-if:可以用v-if指令的条件(判断)值来决定DOM的元素是否渲染出来;

3.使用方法:v-if="表达式"

<div id="app">
    <!-- 条件为true时,将message渲染出来,条件为false时,不渲染出来 -->
	<h2 v-if="true">{{message}}</h2>
	<h2 v-if="false">{{message}}</h2>
	<!-- 用data中的自定义数据show作为条件,则可以动态修改条件 -->
	<h2 v-if="isShow">{{message}}</h2>
</div>
<script src="../js/vue.js"></script>
<script>
const app = new Vue({
    el: "#app",
    data: {
        message: '你好啊!',
        isShow: true
    }
})
</script>

v-if和v-else的结合使用

注意:

v-else 元素必须紧跟在带 v-if 或者 v-else-if 的元素的后面,否则它将不会被识别。

<div id="app">
	<h2 v-if="isShow">{{message}}</h2>
	<h1 v-else>isShow为false时显示我</h1>
</div>
<script src="../js/vue.js"></script>
<script>
const app = new Vue({
    el: "#app",
    data: {
        message: '你好啊!',
        isShow: true
    }
})
</script>

v-if、v-else和v-else-if的结合使用

<div id="app">
	<h2 v-if="score>=90">优秀</h2>
	<h2 v-else-if="score>=80">良好</h2>
	<h2 v-else-if="score>=60">及格</h2>
	<h2 v-else>不及格</h2>
	
	 <!-- 	逻辑较多时,可以直接用计算属性来做 -->
	<h1>{{result}}</h1>
</div>
<script src="../js/vue.js"></script>
<script>
const app = new Vue({
	el: "#app",
	data: {
	    score: 99
	},
	computed: {
	    result() {
	        let showMessage = ''
	        if (this.score >= 90) {
	            showMessage = '优秀'
	        } else if (this.score >= 80) {
	            showMessage = '良好'
	        } else if (this.score >= 60) {
	            showMessage = '及格'
	        } else {
	            showMessage = '不及格'
	        }
	        return showMessage
	   }
	}
})
</script>

用户登录切换的小案例

<div id="app">
	<span v-if="isUser">
		<label for="username">用户账号</label>
		<input type="text" id="username" placeholder="用户账号" key="username">
	</span>
	<span v-else>
		<label for="email">用户邮箱</label>
		<input type="text" id="email" placeholder="用户邮箱" key="email">
	</span>
	<button @click="isUser=!isUser">切换类型</button>
</div>
<script src="../js/vue.js"></script>
<script>
const app = new Vue({
	el: "#app",
	data: {
	    isUser: true
	}
})
</script>

​问题:

为什么会出现这个问题呢?

解决方案:

v-show的使用

1.v-show的使用:

v-show的用法和v-if非常相似,都是决定一个元素是否渲染:

2.v-if和v-show对比:

*当条件为true时:

*当条件为false时:

3.开发中选择用v-show还是v-if?

当需要在显示与隐藏之间切换很频繁时,使用v-show

当只有一次切换时,使用v-if

 <div id="app">
	<h2 v-if="isShow" id="aaa">{{message}}</h2>
	<h2 v-show="isShow" id="bbb">{{message}}</h2>
</div>
<script src="../js/vue.js"></script>
<script>
    const app = new Vue({
        el: "#app",
        data: {
            message: '你好啊!',
            isShow: true
        }
    })
</script>

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文