如何在 Svelte 中使全局变量响应?

问题描述 投票:0回答:2

当我更新

window.test
变量时,以下代码不会运行,我的控制台上没有显示任何日志。我以为
test()
会被运行。我们不能使用 svelte 使全局变量响应式吗?

  $: window.test && test();

  function test() {
    console.log('success');
  }
javascript variables svelte reactive
2个回答
3
投票

不,我们不能使全局(或导入)变量具有反应性。
Svelte 对赋值的反应仅限于 *.svelte 文件内的局部变量。

在其他地方启用反应性的推荐方法是创建商店,可以直接使用 svelte/store 或使用满足 Store 契约的对象。


0
投票

使用新的 Svelte 版本 5,还可以通过符文独立于 Svelte 上下文来处理反应变量。在博客文章中了解有关符文的更多信息。

但是,答案保持不变,它必须始终通过商店运行,或者在这里通过符文运行。

请记住,文件名必须具有以下语法,以便 Svelte 编译器可以对其做出反应: 名称.svelte.ts

© www.soinside.com 2019 - 2024. All rights reserved.