首页 > 其他分享 >vue之间的传值问题---7ref实现组件之间传值

vue之间的传值问题---7ref实现组件之间传值

时间:2024-10-14 14:44:07浏览次数:8  
标签:7ref vue --- child 组件 ChildComponent 传值 页面

1.父组件向子组件传值 :父组件可以通过ref属性获取子组件的实例,进而访问子组件的方法和数据。

父组件
<template>
  <div>
    <child-component ref="child"></child-component>
    <button @click="sendToChild">Send to Child</button>
  </div>
</template>
 
<script>
import ChildComponent from './ChildComponent.vue';
 
export default {
  components: {
    'child-component': ChildComponent
  },
  methods: {
    sendToChild() {
    //获取子组件实例
      const child = this.$refs.child;
      if (child) {
      //调用子组件方法进行传值
        child.receiveValue('Hello from parent!');
      }
    }
  }
};
</script>

子组件


<template>
  <div>
    <p>{{ message }}</p>
  </div>
</template>
 
<script>
export default {
  data() {
    return {
      message: ''
    };
  },
  methods: {
  //接收父组件传输数据的方法
    receiveValue(value) {
      this.message = value;
    }
  }
};
</script>

在这个例子中,父组件通过ref属性为子组件创建了一个引用名称为child。当点击按钮时,父组件的sendToChild方法被触发,它通过this.$refs.child获取子组件的实例,并调用子组件的receiveValue方法,将值传递给子组件。子组件接收到值后,将其设置到自己的message数据属性中,并在模板中显示

  1. 子组件通知父组件:vue关闭弹窗刷新父页面.如果你需要在关闭模态窗口(弹窗)时刷新父页面,你可以在模态窗口关闭的事件中发出一个事件给父页面,然后在父页面监听这个事件来执行刷新操作。
父页面
<template>
  <div>
    <button @click="openModal">打开弹窗</button>
    <child-component @refresh="refreshPage"></child-component>
  </div>
</template>
<script>
import ChildComponent from './ChildComponent.vue';
export default {
  components: {
    ChildComponent
  },
  methods: {
    refreshPage() {
      // 这里实现页面的刷新逻辑
      console.log('父页面刷新');
      // 例如,可以重新请求数据
      // this.fetchData();
    },
    openModal() {
      // 打开模态窗口的逻辑
    }
  }
};
</script>


子页面

<template>
  <div>
    <!-- 弹窗内容 -->
    <button @click="closeModal">关闭弹窗</button>
  </div>
</template>
 
<script>
export default {
  methods: {
    closeModal() {
      // 关闭模态窗口的逻辑
      this.$emit('refresh'); // 当弹窗关闭时,发出 'refresh' 事件
    }
  }
};
</script>

标签:7ref,vue,---,child,组件,ChildComponent,传值,页面
From: https://www.cnblogs.com/baozhengrui/p/18464157

相关文章

  • vue之间的传值问题---6eventbus 可以实现兄弟组件通信
    1.传递数据的组件:通过eventbus中的方法$emit来发布自定义事件,并且传递数据2.接收数据的组件:通过eventbus中的方法$on来订阅事件,并通过回调函数接收数据//手写发布订阅模式classEventBus{//记录事件和回调clientList={send:[()=>{},()=>{}],}//......
  • vue之间的传值问题---2.vuex
    通过Vuex进行状态管理:是一个专为Vue.js应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。在Vuex中传递对象时,应该注意不直接传递对象的引用,1).安装Vuexnpminstallvuex--save2).然后在src......
  • aardio入门到精通05-名字空间
    名字空间importconsole;/*名字空间组织、归类、标识一组具名对象的名字,是模块化编程的重要基础。1.var定义的局部变量有保护变量的作用,其它文件不能调用2.成员变量是名字空间里的变量,加前缀名字空间名来访问,在全局名字空间里可以不加前缀名字空间名3.不同的名字空间,相......
  • js-将JSON 字符串转换为JavaScript 对象(JSON.parse)
    1.背景//JSON字符串constjsonString='{"name":"张三","age":30,"city":"北京"}';获取name值2.JSON字符串进行转换为JS对象将JSON字符串转换为JavaScript对象(JSON.parse(jsonString))//JSON字符串constjsonString='......
  • ubuntu20.04 ros noetic cv4 编译sg-slam问题汇总
    1.CV_RGB2GRAY2.CV_MINMAX3.CV_RGB2GRAY4.CV_FILLED引入头文件include<opencv2/imgproc/types_c.h>include<opencv2/opencv.hpp>include<opencv2/highgui/highgui_c.h>include<opencv2/imgproc/imgproc_c.h>或者1和3将CV_改为cv::COLOR_5.fatalerro......
  • mybatis入门案例-传参类型和方式
    mybatis传参类型和方式主要分享一下mybatis的mapper接口参数类型和传参方式,适用于初学者。直接上代码:pom.xml文件<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-insta......
  • C语言-用指针遍历二维数组
    一、1.用一级指针遍历二维数组7#include<stdio.h>89intmain(intargc,char*argv[])10{11inta[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};12int*p;13p=*a;14inti;15for(i=0;i<12;i++){16if(i!=0&&i%4==0)17......
  • 【北京迅为】itop-3588开发板快速测试手册openkylin系统功能测试
             iTOP-3588开发板采用瑞芯微RK3588处理器,是全新一代AloT高端应用芯片,采用8nmLP制程,搭载八核64位CPU(四核Cortex-A76+四核Cortex-A55架构),集成MaliG610MP4四核GPU,内置AI加速器NPU,算力达6Tops,集成独立的8K视频硬件编码器和硬件解码器,提供了许多功能强大的嵌入......
  • 《TH-OCR:强大的光学字符识别技术》
    在当今数字化的时代,高效准确地将纸质文档、图片中的文字转换为可编辑的电子文本至关重要。而TH-OCR(清华OCR)就是一款在光学字符识别领域表现卓越的软件。一、TH-OCR的简介TH-OCR是由清华大学电子工程系智能图文信息处理研究室研发的光学字符识别软件。它具有高度的准确......
  • app版本更新---全量更新,热更新等等
    全量更新代码isFirst:trueonLoad(){this.versionCheck(true)compareVersion(version1,version2){constarr1=version1.split('.').map((e)=>e*1)constarr2=version2.split('.').map((e)=>e*1)const......