当前位置: 首页 > news >正文

父组件用ref获取子组件数据

在这里插入图片描述在这里插入图片描述

子组件
Son/index.vue

子组件的数据和方法一定要记得用defineExpose暴露,不然父组件用ref是获取不到的!!!

<script setup>
import { ref } from "vue";
const sonNum = ref(1);
const changeSon = () => {sonNum.value++;
};defineExpose({sonNum,changeSon,
});
</script><template><div class="son">{{ sonNum }}</div>
</template><style scoped lang="scss">
.son {width: 100px;height: 20px;border: 1px pink solid;
}
</style>

Father/index.vue

<script setup>
import { ref, onMounted, watch, computed } from "vue";import Son from "../Son/index.vue";
const SonRef = ref(null);
let father = ref();
let sonNumInFather = ref(null);
// console.log("SonRef.value", SonRef.value);
onMounted(() => {father.value = SonRef.value.sonNum;console.log("SonRef.value", SonRef.value.sonNum);console.log("SonRef.value", SonRef.value.changeSon);//   sonNumInFather.value = SonRef.value.sonNum;这样写也可以,但是不会是响应式数据,就永远是初始化的1,不会因为点击按钮就++//   用watch可以实现sonNumInFather是响应数据//   watch(//     () => SonRef.value.sonNum,//     () => {//       father.value = SonRef.value.sonNum;//       console.log("hhhhh");//     }//   );//  用computed可以实现sonNumInFather是响应数据sonNumInFather.value = computed(() => {return SonRef.value.sonNum;});
});const FatherChangeSon = () => {SonRef.value.changeSon();
};
</script><template><button @click="FatherChangeSon">son+1</button><Son ref="SonRef"></Son>{{ sonNumInFather }}<!-- 下面这两个都渲染不成功,都不行 --><!-- {{ SonRef.sonNum }} --><!-- {{ father }} -->// 很奇怪这样就可以了,可以正常显示,也不报错{{ SonRef?.sonNum }}
</template><style scoped lang="scss"></style>
http://www.lryc.cn/news/231034.html

相关文章:

  • Haskell添加HTTP爬虫ip编写的爬虫程序
  • MySQL 社区开源备份工具 Xtrabackup 详解
  • 【仿真】ruckig在线轨迹生成器示例
  • LeetCode 面试题 16.22. 兰顿蚂蚁
  • Docker安装详细步骤及相关环境安装配置(mysql、jdk、redis、自己的私有仓库Gitlab 、C和C++环境以及Nginx服务代理)
  • 科研学习|研究方法——Python计量Logit模型
  • 灵活运用Vue指令:探究v-if和v-for的使用技巧和注意事项
  • nvidia-docker部署pytorch服务【GPU工作站】
  • 单链表的实现
  • 【python】面向对象(类型定义魔法方法)
  • 1.微服务与SpringCloud
  • 【2023全网最全最火】Selenium WebDriver教程(建议收藏)
  • dimp 导入dmp文件报错:无效的模式名(DM8:达梦数据库)
  • 宿主机无法连接docker里的redis问题解决(生产环境慎用)
  • 给女朋友开发个小程序低价点外卖吃还能赚钱
  • 外贸客户管理系统是什么?推荐的管理软件?
  • 数据挖掘:分类,聚类,关联关系,回归
  • 力扣labuladong一刷day10一网打尽股票买卖问题共6题
  • 微信小程序手写table表格
  • UE5 - UI Material Lab 学习笔记
  • oracle删除重复的数据
  • Python中的并发编程是什么,如何使用Python进行并发编程?
  • 【LeetCode】136. 只出现一次的数字
  • HTTP服务器——tomcat的安装和使用
  • 代码随想录Day45 动态规划13 LeetCode T1143最长公共子序列 T1135 不相交的线 T53最大子数组和
  • 写了个监控 ElasticSearch 进程异常的脚本!
  • 第三篇 基于JSP 技术的网上购书系统—— 数据库系统设计(网上商城、仿淘宝、当当、亚马逊)
  • 电脑检测温度软件有哪些?
  • 设计模式 -- 单例模式(Singleton Pattern)
  • ubuntu给终端加代理服务器