svelte - Svelte 中无关组件之间的实时数据共享
问题描述
我有一个案例,我打开了两个选项卡
localhost:5000/
,localhost:5000/stream
并且想更新路径中的变量并实时/
查看路径中的变化。stream
存储不是那样工作的,如果我将本地存储与存储一起使用,我stream
只有在刷新后才能在页面上获取数据,这不是我需要的。有什么解决办法吗?
解决方案
有两种方法可以做到这一点:
使用本地存储
正如您已经在做的那样,但您还必须听取存储中的更改:
window.addEventListener('storage', () => {
const stored = window.localStorage.getItem(...)
// update the store
})
如果您希望数据在用户浏览离开的情况下仍然存在,这可以正常工作。
广播频道 API
另一种方法是使用BroadcastChannel API,您可以在其中创建仅在至少打开一个选项卡时才持久的构造。
这里的概念是一样的:监听频道的变化并更新商店,如果你更新商店本身,就广播它。
推荐阅读
- angular - 无法安装 ngx-slick-carousel
- c++ - 取消引用函数指针的值是什么意思
- flutter - 在 Flutter 中播放在后台播放的音频和鸭子音乐
- javascript - Shoptagr 的可能解决方案
- c++ - 在 vscode 中如何检查 C++ 方法在编辑器中是私有的还是公共的?
- php - 从 laravel 中的 stdClass 对象获取数据
- ionic-framework - 离子路由器动画类型“字符串”不可分配给类型“布尔”
- amazon-web-services - Amazon 无法访问 AWS RDS 中数据加密中 KMS 中使用的密钥吗?
- assembly - 如何在视频模式下打印居中(垂直和水平)的字符串?
- mongodb - 在 MongoDB 中按键分组子文档数组