javascript - 我可以使用 vue.js v-if 来检查数组中是否存在该值吗

标签 javascript vue.js

我在表单中有复选框,我想直接使用 v-if 来根据选定的复选框值显示/隐藏部分。

有可能还是我应该使用 watch: ?

最佳答案

这是可能的。我建议将数据模型添加到切换 true 或 false 的复选框。然后这将允许您使用 v-if 切换内容的外观。

例子:

<template>
    <input type="checkbox" v-model="showContent" value="triggerString" />
    <p v-if="showContent === 'triggerString'">Lorem ipsum</p>
</template>

<script>
    export default {
        data() {
            return {
                showContent: false
            }
        }
    }
</script>

一般来说,我们在不必要的时候尽量不使用watch

更新:使用您包含的 JSFiddle,这就是您仅使用 v-if

的方式
<template>
    <input type="checkbox" 
           v-model="section"
           name="section"
           value="Epiphone"
           id="epiphone">
    <label for="epiphone">Epiphone</labe>

    <section v-if="section.includes('Epiphone')">
        <h1>Epiphone</h1>
    </section>
</template>

<script>
    export default {
        data() {
            return {
                section: []
            }
        }
    }
</script>

由于在您创建的部分数组上发生了两种方式的绑定(bind),因此不需要额外的 div 对象,因为唯一会发生的跟踪将发生在部分对象中。

关于 v-if 要记住的关键是它可以在其中包含实际的 JS 表达式,而不仅仅是数据值。所以你可以从你的 watch 方法中提取逻辑并简单地将它插入那里。

希望这能回答您的问题!

关于javascript - 我可以使用 vue.js v-if 来检查数组中是否存在该值吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43881723/

相关文章:

javascript - Typescript - 类型 'string' 不可分配给类型 'boolean'

javascript - onSubmit 中的异步调用

vue.js - Vuetify 组合框 - 如何禁用在 vuetify 的组合框中输入

javascript - Vue.js 图表无法正常工作?

webpack - 如何让 Flow 与 Vue 2 (webpack) 一起正常工作?

javascript - Angularjs 中的电子邮件/ID 重复检查

javascript - 如何将毫秒转换为日期(月份中的某一天)?

asp.net - cometd 编程和asp.net

javascript - 如何为 vue.js 应用程序的每个标签单独运行函数?

javascript - Vuex:如何将 getter 的结果存储在状态中?