vueDay04——v-if else show

一、v-if的使用

我们可以像c语言一样去使用v-if结构

比如单用v-if,连用v-if  v-else,或者是v-if v-else-if v-else

注意:

1.v-if v-else-if需要绑定值,而v-else不需要绑定值

2.if结构可以用在不同的标签类型之间

<div v-if="firstShowFlag">
        first被渲染
</div>
<div v-else-if="secondShowFlag">
        second被渲染
</div>
<p v-else>
        third被渲染
</p>

我们可以利用一个button绑定一个方法区实现某些样式的切换,但是感觉不如class与style绑定来的实在,但是好处是逻辑比较清晰,如果用绑定的方式不容易一眼看出逻辑

    <button @click="changevalue">
        点击我进行切换
    </button>
    <div v-if="showFlag">
        <h1>Vue is awesome!</h1>
    </div>
    <div v-else>
        <h1>Oh no 😢,我是菜🐔</h1>
    </div>
const showFlag = ref(true)
const changevalue = () => {
    showFlag.value = !showFlag.value
}

还有一点template上的v-if这个没看懂,草草草草草

二、v-if和v-show的大同小异

相同点就是,他们二者都可以控制标签是否渲染,可以选择性的控制元素的显示

不同点就是 

1.v-show不支持在template上面使用

2.v-show并不会擦除本身标签,而是切换了一个叫display的CSS样式

3.v-if每次都会被销毁或者创建,而v-show只会将其藏起来或者显示出来

4.v-if只有在第一次为true的时候才会渲染 而v-show不管怎么都会渲染

三、全部代码

 

<template v-if="trueFlag">
    <button @click="changevalue">
        点击我进行切换
    </button>
    <div v-if="showFlag">
        <h1>Vue is awesome!</h1>
    </div>
    <div v-else>
        <h1>Oh no 😢,我是菜🐔</h1>
    </div>
</template>

<script lang="ts" setup>
// import { defineComponent } from '@vue/composition-api'
import { ref } from 'vue'
// false true
const booleanFlagArray = ref([false,false,false]) 
const firstShowFlag = ref(booleanFlagArray.value[0])
const secondShowFlag = ref(booleanFlagArray.value[1])
const thirdShowFlag = ref(booleanFlagArray.value[2])

const showFlag = ref(true)
const falseFlag = ref(false)
const trueFlag = ref(true)

const changevalue = () => {
    showFlag.value = !showFlag.value
}
</script>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JSU_曾是此间年少

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值