svelte - Svelte 中不相关组件之间的实时数据共享

标签 svelte svelte-3 svelte-component

我有一个案例,我打开了两个选项卡 localhost:5000/localhost:5000/stream并想更新 / 中的变量路径并查看 stream 中的更改实时路径。存储不是这样工作的,如果我将本地存储与存储一起使用,我会在 stream 上获取数据。刷新后才出现页面,这不是我需要的。有什么解决办法吗?

最佳答案

有两种方法可以做到这一点:

使用本地存储

正如您已经在做的那样,但您还必须监听存储中的更改:

window.addEventListener('storage', () => {
  const stored = window.localStorage.getItem(...)
  // update the store
})

如果您希望数据在用户浏览离开后仍然保留,那么这种方法就很有效。

广播 channel API

另一种方法是使用 BroadcastChannel API您可以在其中创建一个仅在至少打开 1 个选项卡时才持久的结构。

这里的概念是相同的:监听 channel 中的变化并更新商店,如果您更新商店本身,则广播它。

关于svelte - Svelte 中不相关组件之间的实时数据共享,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69127660/

相关文章:

components - 如何在 slim 的故事书中使用 `slot`

css-animations - 尝试导入过渡时,Svelte with snowpack 给出 "Not Implemented: Animation"

javascript - 如何将 Sapper 添加到现有的 Svelte 元素中?

javascript - 外部依赖项在 Nav.svelte 中不起作用

纤细的组件不刷新

SvelteKit:CSS 中引用的静态资源的开发/构建和路径问题

Svelte 商店有条件的自动订阅

svelte - 如何在 SvelteKit 中获取用户代理加载功能

javascript - 使用 svelte/store 测试 svelte 组件