如何监控变量并在每次变量变化时运行函数?



将会像on:change事件一样。

我没有使用这个事件,因为在一些苗条的库中,这个事件不会被触发,这意味着使用绑定和$

然而,Svelte似乎没有一个干净的语法。

我只能想到

这样的东西
$: {
if (variable) {
doSomething();
}
}

其中每次variable的值变化,doSomething()都会运行。

但是if语句的使用是奇怪的…如果variable是一个布尔值呢?这样,当变量的值为false时,函数将不会运行。

这个想法是每次变量的值改变时都运行函数,不管新的值实际是什么。

我也试过

$: doSomething(variable);

它可以工作,但它也很奇怪,因为函数doSomething可能不需要参数。在这种情况下,参数纯粹是为了添加variable作为$语法的依赖项…

也尝试了https://stackoverflow.com/a/56987526/11752443的答案,但这一个根本不起作用。而且在文档(https://stackoverflow.com/a/56987526/11752443)中也没有提到。

提前感谢!

Rich Harris建议的解决方案似乎确实有效:

$: variable, doSomething()

工作示例:https://svelte.dev/repl/c25bdd71c9764f1f809bd35737fbaeb9?version=3.53.1

最新更新