提问人:L1nk 提问时间:11/6/2023 更新时间:11/7/2023 访问量:74
(Vue 3、Nuxt 3)只有在 vs 代码中添加更改后,才会发出从子组件到父组件的值
(Vue 3, Nuxt 3) The value from the child component to parent component emits only after adding changes in vs code
问:
我需要将高度值从 СhildСomponent 发送到 puzzleSelectBlockHeight ref 中的 pages/index 组件中。但问题是,这只有在我更改 index.vue 组件中的某些内容(例如更改文本或添加/删除 div)后才会发生。请告诉我为什么会发生这种情况以及如何解决?
演示:https://codesandbox.io/p/sandbox/test-2-zh3g8r?file=%2Fpages%2Findex.vue%3A11%2C20
答:
0赞
yoduh
11/7/2023
#1
使用观察程序而不是 onMounted 挂钩。每当它发生变化时,它将能够发出新的高度。我还建议发出内部 ref 值而不是 ref 本身,因为跨组件的反应性将不起作用。观察程序仍将确保始终发出最新的高度值。
ChildComponent.vue 文件
function blockHeight() {
emit('block-height', height.value)
console.log('height', height.value)
}
watch(height, () => {
blockHeight()
},
{ immediate: true }
)
评论
0赞
L1nk
11/7/2023
是的,现在它正在按我的预期工作!谢谢)但是我看到带有 class=“parent-block” 的块如何将他的初始高度更改为带有文本的 div 高度,也许您知道如何在没有此“跳转”的情况下在挂载页面之前使用 class=“parent-block” 渲染这个块高度?
评论
blockHeight
height.value
blockheight