Vue3.1
父组件创建实例, 传给子组件
const tableInstance = new TableHandle() // 在子组件中修改操作
watch(() => tableHandleInstance.results.value , (newVal) => {
console.log('tableHandleInstance 数据变化............................',newVal)
})
问题:
父组件监听不到最新的 tableInstance .results.value
但可以通过函数拿到,这是什么梗
function test(){
console.log('tableHandleInstance response?.count..........', tableHandleInstance.response?.count)
}
![](https://profile-avatar.csdnimg.cn/default.jpg!4)
Vue3.1 父组件创建实例, 传子组件操作实例,,父组件不能直接获取实例值吗
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
关注
父组件创建实例,传给子组件操作实例的情况,如果父组件需要使用子组件修改后实例的值,可以通过监听实例值的变化来获取最新值。
假设子组件使用
props
接收到了父组件传来的实例myInstance
,并在子组件中对其进行修改,可以在watch
中监听到值的变化。子组件代码:
<template> <div> <!-- 省略其他内容 --> </div> </template> <script> export default { props: { myInstance: { required: true } }, watch: { myInstance(newValue) { console.log('myInstance value changed:', newValue); // 父组件可以在这里获取更新后的值 } }, // 省略其他内容 } </script>
需要注意的是,在子组件中修改实例的值,要避免直接修改传入的实例,而应该使用其方法修改其属性,这样能触发监听实例属性变化的钩子函数。
父组件创建实例的代码示例:
<template> <div> <ChildComponent :myInstance="myInstance"/> <div>myInstance value: {{ myInstance.value }}</div> </div> </template> <script> import { reactive } from 'vue'; export default { data() { return { myInstance: reactive({ value: 'initial value' }) }; } // 省略其他内容 } </script>
这样,在子组件中修改
myInstance
属性的值时,会触发watch
中的myInstance
监听函数,从而父组件可以获取更新后的值。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 metadata提取的PDF元数据,如何转换为一个Excel
- ¥15 关于arduino编程toCharArray()函数的使用
- ¥100 vc++混合CEF采用CLR方式编译报错
- ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
- ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
- ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
- ¥50 如何openEuler 22.03上安装配置drbd
- ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
- ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
- ¥15 Windows11, backspace, enter, space键失灵