【Vue】使用v-model实现控制子组件显隐

news/2024/7/24 1:06:13 标签: vue.js, javascript, 前端

v-model 可以实现双向绑定的效果,允许父组件控制子组件的显示/隐藏,同时允许子组件自己控制自身的显示/隐藏。以下是如何使用 v-model 实现这个需求:

在父组件中,你可以使用 v-model 来双向绑定一个变量,这个变量用于控制子组件的显示/隐藏:

<template>
  <div>
    <button @click="toggleChild">Toggle Child Component from Parent</button>
    <ChildComponent v-model="showChild" />
  </div>
</template>

<script>javascript">
import ChildComponent from './ChildComponent.vue';

export default {
  components: {
    ChildComponent
  },
  data() {
    return {
      showChild: false
    };
  },
  methods: {
    toggleChild() {
      this.showChild = !this.showChild;
    }
  }
}
</script>

在子组件中,你需要定义一个名为 valueprops,以便接收来自父组件的 v-model 绑定:

<template>
  <div>
    <button @click="toggleSelf">Toggle Myself</button>
    <div v-if="value">I'm the Child Component</div>
  </div>
</template>

<script>javascript">
export default {
  props: {
    value: Boolean
  },
  methods: {
    toggleSelf() {
      // 子组件自己控制显示/隐藏状态
      this.$emit('input', !this.value);
    }
  }
}
</script>

在子组件中,通过 this.$emit('input', ...) 来触发 input 事件,这将影响父组件中 v-model 的绑定值。这样,父组件和子组件都可以独立地控制显示/隐藏状态,实现了双向绑定的效果。


http://www.niftyadmin.cn/n/5147127.html

相关文章

Go如何创建一个包并使用(导入本地包和注意事项)

Go 语言中&#xff0c;包&#xff08;Package&#xff09;的目的和其他语言中的库或模块是一样的&#xff0c;支持模块化、封装、单独编译和重用。 ——《The Go Programming Language》 有时候需要自己写一个包方便多次使用&#xff0c;但是在导入自己写的包时遇到了问题。我以…

【Python Numpy】修改数组形状

文章目录 前言一、什么是NumPy数组形状&#xff1f;二、NumPy改变数组形状的方法2.1 reshape方法2.2 resize方法2.3 flatten方法2.4 ravel方法2.5 transpose方法 三、关于修改数组形状更多的示例代码总结 前言 NumPy&#xff08;Numerical Python&#xff09;是Python中用于处…

通过git多人协调开发

多人协调开发过程中的问题解决。 1.新建远程的仓库分支&#xff1b; 2.拉取线上代码&#xff0c;并在VScode中打开&#xff1b; 3 拉完之后&#xff0c;打开VScode之后的左下角显示的就是当前分支的名称&#xff0c;点击之后即可随意切换&#xff1b; 4 创建本地分支&#xff0…

【hcie-cloud】【1】华为云Stack解决方案介绍、华为文档获取方式 【上】

文章目录 华为文档获取方式前言云计算发展背景国家政策、社会发展驱动数字经济开启新时代深化数字化转型提升效率&#xff0c;国家数字主权云进入落地阶段从Cloud-Based到Cloud-Native&#xff0c;两种模式长期并存适合政企智能升级的云华为云Stack&#xff0c;政企智能升级首选…

MySQL用户管理(创建、修改、删除用户)

MySQL 在安装时&#xff0c;会默认创建一个名为 root 的用户&#xff0c;该用户拥有超级权限&#xff0c;可以控制整个 MySQL 服务器。 在对 MySQL 的日常管理和操作中&#xff0c;为了避免有人恶意使用 root 用户控制数据库&#xff0c;我们通常创建一些具有适当权限的用户&a…

第二证券:央行、外汇局:实施差别化住房信贷政策;富士康辟谣…

重要的音讯有哪些 国务院附和在海南自贸港暂时调整实施有关行政法规规矩 国务院发布关于附和在海南自由贸易港暂时调整实施有关行政法规规矩的批复。为支撑海南自由贸易港制造&#xff0c;依照《海南自由贸易港制造总体计划》&#xff0c;附和自即日起在海南自由贸易港暂时调…

深入浅出Django的MTV架构

在现代Web应用程序开发中&#xff0c;采用一种模式或架构以组织代码和功能是至关重要的。在Django中&#xff0c;这种模式被称为MTV模式&#xff0c;即模型&#xff08;Model&#xff09;、模板&#xff08;Template&#xff09;和视图&#xff08;View&#xff09;。尽管它与传…

python问题笔记2

70 列表嵌套元组,分别按字母和数字排序 您可以使用Python中的sorted()函数来对列表中的元组进行排序。首先,您需要定义一个自定义的排序函数,以便根据字母或数字进行排序。 以下是一个例子,展示如何按字母和数字分别对嵌套元组进行排序: def sort_by_letter(item):retu…