【发布时间】:2023-03-19 21:47:01
【问题描述】:
我知道 svelte 非常适合在组件的某些属性发生更改时自动更新组件。但我的情况略有不同。为了简化,假设我有一个带有两个子组件的父 Svelte 组件:
<div>
<child1 onButtonClicked={handleClick} />
<child2 (1) />
</div>
<script>
function handleClick() {
(2)
}
</script>
我希望当用户点击<child1> 内的按钮时,<child2> 内会执行一些函数。我可以在 (1) 和 (2) 中添加什么来实现此行为?
我能想到的就是有一个计数器,在handleClick 内递增并将计数器传递给<child2>,然后在<child2> 中使用$: 来捕捉变化。但这将是一个非常人为的解决方法。当然,我可以将我想要执行的代码从 <child2> 移动到父组件,但这甚至是一种更丑陋的解决方法,因为 <child2> 是真正知道该做什么的人。
【问题讨论】:
标签: javascript svelte