html_and_vue/vue/11_条件渲染/条件渲染.html

74 lines
2.2 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script type="text/javascript" src="../js/vue.js"></script>
</head>
<body>
<!--
条件渲染:
1.v-if:
写法:
1).v-if="表达式"
2).v-else-if="表达式"
3).v-else="表达式"
适用于:
切换频率较低的场景
特点:
不展示的DOM元素直接被移除
注意:
v-if可以和v-else,v-else-if一起使用, 但要求结构不能被"打断"
2.v-show
写法:
v-show="表达式"
适用于:
切换频率较高的场景
特点:
不展示的DOM元素未被移除,仅仅是使用样式隐藏掉
3.备注:
1).使用v-if时, 元素可能无法获取到, 而使用v-show一定可以获取到
2).template不会改变结构, 可以和v-if配合使用批量设置条件渲染
-->
<div id="root">
<h2>当前n的值是{{n}}</h2>
<button @click="n++">点我n+1</button>
<!-- 使用v-show做条件渲染 -->
<!-- <h2 v-show="false">请叫我{{name}}</h2> -->
<!-- <h2 v-show="a">请叫我{{name}}</h2> -->
<!-- 使用v-if做条件渲染 -->
<!-- <h2 v-if="false">请叫我{{name}}</h2> -->
<!-- <h2 v-if="1 === 1">请叫我{{name}}</h2> -->
<!-- v-else和v-else-if -->
<!-- <div v-if="n === 1">死亡赌局</div>
<div v-if-else="n === 2">超级手机</div>
<div v-if="n === 3">逍遥小医仙</div>
<div v-else>绝天神印</div> -->
<!-- v-if和template的配合使用 -->
<template v-if="n === 1">
<h2>你好</h2>
<h2>请叫我张钧</h2>
<h2>哈哈哈</h2>
</template>
</div>
</body>
<script type="text/javascript">
Vue.config.productionTip = false
const vm = new Vue({
el:'#root',
data:{
name:'张钧',
a:false,
n:0
},
})
</script>
</html>