我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Vue中子组件的显示与隐藏方式

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Vue中子组件的显示与隐藏方式

子组件的显示与隐藏

在使用Vue开发前端页面的过程中,经常都会遇到需要在父组件中控制子组件的显示/隐藏,比如弹出窗口。最简单的方法就是:通过父子组件间的数据双向绑定来实现。这种方法虽然简单,但只是针对于父与子组件这种关系来实现的。如果是子组件与子组件之间,可以考虑使用Vuex来完成。

另外我自己也是一个前端小白,为了更方便大家理解,我将代码拆分成了两个步骤:

  • 第一步是实现父对子的显示/隐藏的控制(v-show)
  • 第二步是实现子组件对自己的隐藏(父子组件参数传递)

完整的代码在2.1与2.2中。

第一步 使用v-show

这一步首先实现在父组件通过v-show对子组件的显示/隐藏进行控制。

父组件中有显示/隐藏按钮,点击后显示/隐藏子组件,效果如下:

1.1 父组件

<template>
  <div class="contain">
    <p>这里是父组件页面</p>
    <button @click="showDialog(true)">显示</button>
    <button @click="showDialog(false)">隐藏</button>
    <!-- 这里使用v-show -->
    <subDialog v-show="dialog_visible"></subDialog>
  </div>
</template>

<script>
// 引入子组件
import subDialog from "@/components/Dialog/subDialog";
export default {
  components: { subDialog },
  data() {
    return {
      // 控制子组件显示与隐藏的标识,类型为Boolean
      dialog_visible: false
    }
  },
  methods: {
    showDialog(visible) {
      this.dialog_visible = visible;
    }
  }
}
</script>

<style lang="scss" scoped>

.contain {
  height: 300px;
  width: 400px;
  text-align: center;
  padding: 20px;
  background-color: #9dd3fa;
}
</style>

Vue中的v-show指令会通过切换CSS中display属性的值,使对应元素显示/隐藏。

简化了click方法,将显示/隐藏按钮的点击事件写到了一起。

1.2 子组件

目前子组件中仅仅只是做界面的显示。

<template>
  <div class="sub-contain">
    <p>这里是子组件窗口</p>
  </div>
</template>

<script>
export default {
  
};
</script>

<style lang="scss" scoped>

.sub-contain {
  height: 150px;
  width: 100%;
  padding: 20px;
  text-align: center;
  margin-top: 20px;
  background-color: #1f6fb5;
  color: #fff;
}
</style>

2 第二步 父子组件传参

在第一步中,我们通过在父组件中修改dialog_visible的值,来控制子组件的显示/隐藏,非常简单。

而下一步,我们还需要实现在子组件中隐藏(关闭)自己。

原理上很简单,其实就是在子组件中,修改父组件中的dialog_visible参数嘛。

最终的效果如下:

2.1 父组件

<template>
  <div class="contain">
    <p>这里是父组件页面</p>
    <button @click="showDialog(true)">显示</button>
    <button @click="showDialog(false)">隐藏</button>
    <!-- 新增了向子组件传递的参数dialog_visible 与 自定义事件dialogVisibleEvent -->
    <subDialog 
	  v-show="dialog_visible" 
      :dialog_visible="dialog_visible"
      @dialogVisibleEvent="showDialog">
   	</subDialog>
  </div>
</template>

<script>
// 引入子组件
import subDialog from "@/components/Dialog/subDialog";
export default {
  components: { subDialog },
  data() {
    return {
      // 控制子组件显示与隐藏的标识,类型为Boolean
      dialog_visible: false
    }
  },
  methods: {
    showDialog(visible) {
      this.dialog_visible = visible;
    }
  }
}
</script>

<style lang="scss" scoped>

.contain {
  height: 300px;
  width: 400px;
  text-align: center;
  padding: 20px;
  background-color: #9dd3fa;
}
</style>

父组件的变化并不大,主要有两个地方:

  • 向子组件传参,即将dialog_visible传递给子组件
  • 设置自定义事件与其处理方法

2.2 子组件

<template>
  <div class="sub-contain">
    <p>这里是子组件窗口</p>
    <button @click="doClose">隐藏</button>
  </div>
</template>

<script>
export default {
  props: {
    dialog_visible: Boolean
  },
  data() {
    return {
      visible: this.dialog_visible
    }
  },
  watch: {
    visible(val) {
      this.dialog_visible = val;
    }
  },
  methods: {
    doClose() {
      // 触发父组件中的dialogVisibleEvent事件,并传递参数
      this.$emit('dialogVisibleEvent', false);
    }
  }
};
</script>

<style lang="scss" scoped>
.sub-contain {
  height: 150px;
  width: 100%;
  padding: 20px;
  text-align: center;
  margin-top: 20px;
  background-color: #1f6fb5;
  color: #fff;
}
</style>

子组件中增加了一个按钮,用于隐藏自身,通过触发父组件事件来修改父组件中dialog_visible的值。

用一张图来表示父、子组件间数据双向绑定的数据流向是:

如此便完成了Vue子组件的显示与隐藏。

(最后吐槽一句,CSDN这markdown编辑器的代码块高亮都还不支持vue的语法,勉强用html语法的高亮代替…)

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Vue中子组件的显示与隐藏方式

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

vue之Element-Ui输入框显示与隐藏方式

这篇文章主要介绍了vue之Element-Ui输入框显示与隐藏方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2023-05-16

使用vue控制元素显示隐藏方式

这篇文章主要介绍了使用vue控制元素显示隐藏方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2022-11-13

Flutter控制组件显示和隐藏三种方式详解

这篇文章主要为大家介绍了Flutter控制组件显示和隐藏三种方式详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2022-11-13

deepin20隐藏文件怎么取消隐藏?deepin显示隐藏文件的方法

deepin20怎么显示隐藏文件?deepin20系统中有很多重要的文件被隐藏了,想要修改,需要显示出来,,该怎么显示呢?下面我们就来看看详细的教程。1、点任务栏上的【文件管理器】。2、在【文件管理器】中点右上角的下拉菜单按钮。3、下拉菜单
2022-06-01

windows7隐藏文件夹如何显示出去windows7隐藏文件夹显示方式 详细介绍

在windows7系统软件中文件夹是可以被隱藏的,那麼要是想让隐藏文件夹显示出去得话,应当怎么操作呢?方式 非常简单,你先开启控制面板,寻找并进到文件夹选项,以后转换到查询菜单栏,随后选中“显示掩藏的文档、文件夹和控制器”,储存设定以后,你
2023-07-12

vue+elementUI-el-table实现动态显示隐藏列方式

这篇文章主要介绍了vue+elementUI-el-table实现动态显示隐藏列方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2023-01-13

win7与xp系统中如何显示隐藏的文件

隐藏的文件夹怎么显示?相信很多电脑新手朋友都会问这个问题,比如我们一般可以看到C盘系统盘里的系统文件是隐藏的,那么如何查看已经隐藏了的文件或曾经自己将文件夹设置为隐藏,要查看,怎么让隐藏文件显示出来呢?Windows xp系统下隐藏的文件夹
2023-05-29

winxp和win7显示隐藏文件的方法

一、XP系统隐藏文件恢复方法: 1、点开 我的电脑 2 、在最上排的一排按钮中 有工具 这个按钮 点开 3、 点开 文件夹选项 4、 点最上一排编程客栈按钮 查看 5 、把 隐藏受保护的操作系统文件勾去掉 6、往下一项 你会看见 有个隐藏文
2023-06-04

win7系统显示隐藏文件的方法

本篇内容主要讲解“win7系统显示隐藏文件的方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“win7系统显示隐藏文件的方法”吧!具体操作:1.打开“计算机”,点击“工具”。在工具的下拉菜单中选
2023-06-27

vue+elementUI怎么配置表格的列显示与隐藏

这篇文章主要介绍“vue+elementUI怎么配置表格的列显示与隐藏”,在日常操作中,相信很多人在vue+elementUI怎么配置表格的列显示与隐藏问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vue+e
2023-06-30

怎么利用vue控制元素的显示与隐藏

这篇文章主要介绍了怎么利用vue控制元素的显示与隐藏的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么利用vue控制元素的显示与隐藏文章都会有所收获,下面我们一起来看看吧。 方法:使用 v-if 指令,通过动态
2023-07-04

编程热搜

目录