【问题标题】:Does Svelte store's auto-subscription work in non-component files?Svelte 商店的自动订阅是否适用于非组件文件?
【发布时间】:2021-08-09 12:58:23
【问题描述】:

只是一个基本问题:商店的 $-syntax 是否适用于非组件 JavaScript 文件?

doc 说:

只要您有对商店的引用,就可以访问它的值 在组件内部添加 $ 字符作为前缀。

但是,这个官方example 似乎在不是组件的派生商店中使用了 $-syntax:

export const elapsed = derived(
    time,
    $time => Math.round(($time - start) / 1000)
);

这是定制商店的特例吗?还是有可能因为它被导入到组件中?

【问题讨论】:

  • $time 只是一个函数参数名称,这里没有发生任何微妙的魔法。

标签: subscription svelte svelte-store


【解决方案1】:

答案是否定的,因为只会编译 Svelte 文件。

您对派生商店的看法是正确的。但这只是为了明确回调接收值而不是订阅。您也可以使用其他值名称,并且不需要以 $ 开头。

export const elapsed = derived(
    time,
    _time => Math.round((_time - start) / 1000)
);

【讨论】:

  • 一个JS文件导入到组件中,不代表它也被编译了吗?
  • 没有。但是当然你可以在这里使用 store.subscribe() 或 get(store) 来获取当前的 store 值。或者将 $store 作为函数参数传递给导入的 js 函数。从 js 文件导入。
猜你喜欢
  • 2020-07-29
  • 1970-01-01
  • 1970-01-01
  • 2021-12-23
  • 2020-03-26
  • 1970-01-01
  • 2022-12-18
  • 2020-03-26
  • 2022-07-21
相关资源
最近更新 更多