vue的v-if和v-else

本文通过一个具体的示例,展示了如何在Vue.js中使用v-if和v-else指令进行条件渲染,实现输入框的切换。并通过添加key属性来避免组件复用的问题,提高用户体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

jq中的判断放在vue中可以这样写,加上key是为了value不被复用
(自己按照视频学习的记录练习)

<div id="app">
    <span v-if="ishow">
        <label for="username">username</label>
        <input type="text" id ="username" placeholder = "username" key="username">

    </span>
    <span v-else>
        <label for="mail">mail</label>
        <input type="text" id ="mail" placeholder = "mail" key="mail">
     </span>
    <button @click="ishow = !ishow" >test</button>
</div>
<script>
    var app = new Vue({
        el: '#app',
        data: {
            message:'',
            ishow:true
        }

    })
</script>
Vue.js 中,`v-if` `v-else-if` 是用于条件渲染的指令。`v-if` 用于根据表达式的真假值来决定是否渲染某个元素或组件,而 `v-else-if` 则用于在 `v-if` 条件不满足时,检查另一个条件。此外,`v-else` 用于在前面的条件都不满足时渲染默认内容。 ### 基本用法 ```html <template> <div> <p v-if="score >= 90">优秀</p> <p v-else-if="score >= 60">及格</p> <p v-else>不及格</p> </div> </template> <script> export default { data() { return { score: 85 } } } </script> ``` 在这个例子中,`score` 的值是 85,因此会渲染 "及格" 的 `<p>` 元素。 ### 注意事项 1. **`v-if` `v-else-if` 的顺序**:Vue 会按顺序检查这些条件,一旦某个条件为真,就会渲染对应的元素,并跳过后续的检查。 2. **`v-else` 的使用**:`v-else` 必须紧跟在 `v-if` 或 `v-else-if` 之后,否则不会生效。 3. **性能考虑**:频繁切换 `v-if` 可能会影响性能,因为 Vue 需要创建销毁 DOM 元素。在这种情况下,可以考虑使用 `v-show`,它通过 CSS 的 `display` 属性来控制元素的显示隐藏。 ### 示例代码 ```html <template> <div> <p v-if="score >= 90">优秀</p> <p v-else-if="score >= 60">及格</p> <p v-else>不及格</p> </div> </template> <script> export default { data() { return { score: 85 } } } </script> ``` ### 动态切换 ```html <template> <div> <input v-model="score" type="number" placeholder="输入分数"> <p v-if="score >= 90">优秀</p> <p v-else-if="score >= 60">及格</p> <p v-else>不及格</p> </div> </template> <script> export default { data() { return { score: 0 } } } </script> ``` 在这个例子中,用户可以通过输入框动态改变 `score` 的值,从而实时看到不同的渲染结果。 ### 总结 `v-if` `v-else-if` 是 Vue.js 中非常有用的条件渲染指令,它们允许你根据不同的条件来渲染不同的内容。合理使用这些指令可以使你的应用更加灵活高效。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值