let c = 0;
$: console.log(c);
如果我们想在更改c
时打印其值,我们可以像上面这样写。
由于c
字面使用了$
,因此该语句可以对c
起反应。
但是如果console.log('yes')
更改后我只想c
怎么办?
let c = 0;
$: console.log('yes');
很显然,语句console.log('yes')
对c
无反应。
此外,如果我仍然console.log(c)
但将其放入函数中:
let c = 0;
function log() {
console.log(c);
}
$: log();
log()
对c
也没有反应。
那么,如果反应式代码不包含我想反应的变量,该怎么办?
答案 0 :(得分:1)
我最近一直在玩svelte,需要在属性更改时调用一个函数。
在Vue中,您可以使用watch
来做到这一点,但是我在Svelte中找不到对等的人。
在我的项目中,是这样完成的:
let c = 0;
$: if (c) {
console.log("yes");
}
我不确定100%是否是正确的方法。
我希望知道,里奇·哈里斯(Rich Harris)会在这里鸣叫。
答案 1 :(得分:1)
答案 2 :(得分:1)
执行此操作的最佳方法是使用一个检测值变化的函数来查看此示例Variable watcher with svelte
答案 3 :(得分:0)
您可以这样做:
let c = 0;
$: if (c >= 0) {
console.log("yes");
}
答案 4 :(得分:0)
如果你只是在任何你想做的事情中使用不断变化的变量,它也可以工作:
let c
$: if (condition) console.log(c)