vue之子组件监听父组件传值

这篇博客介绍了在Vue中,子组件如何监听并处理父组件传递过来的值,提供了一个简单的示例帮助理解这一过程。

在工作过程中,经常碰见自己封装的组件需要监听父组件传过来的值,很有可能是在子组件需要对值进行处理,有不少同学不知道如何处理这个值,以下是简单demo,仅供参考。。。

父组件:

<template>
  <div>
    <el-button type="success" @click="handelClick">点击</el-button>
    <modalCom :isDisplay="isDisplay" @close="close" :propsData="propsData" />
  </div>
</template>

<script>
import modalCom from "./modalCom.vue";
export default {
  components: { modalCom },
  data() {
    return {
      isDisplay: false,
      num: 1,
      propsData: {}
    };
  },
  methods: {
    close(data) {
      console.log(data);
      this.isDisplay = data;
    },
    handelClick() {
      this.isDisplay = true;
      console.log(this.isDisplay, 999);
      this.num++; //加加  自定义对象值
      const data = {
        name: "赵四",
        num:
### Vue2 中子组件监听父组件的方法 在 Vue2 中,可以通过 `watch` 或者 `$emit` 的方式来实现在子组件监听父组件递的的变化。以下是具体的实现方式: #### 使用 `props` 和 `watch` 1. **通过 `props` 接收父组件的数据** 首先,在子组件中定义一个接收父组件数据的属性,通常使用 `props` 来完成这一操作。 2. **利用 `watch` 实现监听功能** 在子组件内部可以使用 Vue 提供的 `watch` API 对接收到的 `prop` 属性进行监控,当其发生变化时执行相应的逻辑[^1]。 下面是一个完整的代码示例展示如何实现上述过程: ```javascript // 子组件 ChildComponent.vue <template> <div> <p>来自父组件的消息: {{ message }}</p> </div> </template> <script> export default { name: 'ChildComponent', props: ['message'], // 定义 prop 来接受父组件递的 data() { return {}; }, watch: { message(newVal, oldVal) { console.log(`消息已更新:旧=${oldVal} -> 新=${newVal}`); this.handleMessageChange(newVal); // 调用方法处理新 } }, methods: { handleMessageChange(value) { console.log('正在处理新的消息:', value); // 可在此处添加额外逻辑 } } }; </script> ``` 在这个例子中,每当父组件中的 `message` 发生改变时,子组件都会触发对应的回调函数并打印日志到控制台。 #### 利用 `$emit` 进行双向绑定 (可选) 如果希望不仅能够监听父级变量的变化还能反过来影响它,则可以在子组件内调用 `$emit` 向上通知更改后的状态给父组件知道[^3]。不过这种方式更适用于表单输入控件之类的场景而非单纯只读型参数同步情况。 --- ### 总结 综上所述,在 Vue2 当中要让子组件去感知到来自于父亲节点所给予的信息变动有两种主要途径——借助观察器 (`watch`) 把握外部动态;或者构建起基于事件驱动机制下的交互链条 ($emit)。这两种手段各有千秋,具体选用哪一种取决于实际开发需求以及项目架构设计考量因素。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

浏览器翻译官~

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

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

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

打赏作者

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

抵扣说明:

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

余额充值