问题标签 [svelte-store]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
272 浏览

javascript - 在苗条商店中保存窗口绑定

嗨,互联网上的好人,

我为用户的滚动位置创建了一个侦听器: <svelte:window bind:scrollY={y} /> 我想将此变量保存在商店中,以使其在整个网站上都可以访问。但为此,我需要一个二传手。有没有一种好的高性能方法来做到这一点?

我试过这个,但它不起作用:

0 投票
1 回答
826 浏览

javascript - Svelte 派生存储和数组排序

我建立了一个商店,其中包含从我的 API 加载的游乐设施列表:

然后我为过去和未来的游乐设施设置了两个派生商店:

第二种sort方法没有任何效果。

所以我试着把这个方法放在前面filter。它有效,但它也排序$pastRides。事实上,它正在对整个$rides数组进行排序,这很有意义。

但我不明白为什么sort之后filter不起作用。

我错过了什么?

0 投票
4 回答
8611 浏览

javascript - 是否可以从外部 js 文件访问 Svelte 商店?

我想知道我是否能够从一个普通的 .js 文件访问我的Svelte存储值。

我正在尝试编写基于存储值返回动态值的函数,以将它们导入任何组件中。但是在一个普通的 .js 文件中,我不能只使用 $ 符号访问存储值。

使用存储值并可用于多个组件的基本函数的快速示例:

编辑:改写一下

编辑: 找到了一个解决方案,但我真的不知道它是否真的优化了..

0 投票
1 回答
1291 浏览

svelte - 使用 svelte/store 更新方法更新对象时是否应该使用扩展运算符?

我正在创建一个使用对象来存储我的数据的商店。

我可以使用扩展运算符更新商店,但我也可以在没有扩展运算符的情况下更新它。

Svelte 是否像 React 一样,我应该在更新对象状态之前使用扩展运算符创建一个新对象,这样我就不会改变原始对象?

withSpreadOperator()或者withoutSpreadOperator()……这就是问题所在。

0 投票
1 回答
790 浏览

svelte - 如何使用补间存储为 svelte 中的数组值设置动画?

我有一个包含以下数据的可写存储

我想根据 KNOWLEDGE 为进度条设置动画,我在 {#each } 循环中访问知识,但进度条没有动画,因为我必须传递补间存储对象并设置它的值。那么如何为 bar 设置动画呢?如何在循环中将知识值传递给补间对象 set() 方法?

0 投票
1 回答
2151 浏览

svelte - Svelte 商店未在屏幕上更新

我是 Svelte 的新手,我犯了一个菜鸟错误。我有一个到服务器的 websocket 连接,我正在记录数百条消息并将它们添加到商店,但页面根本没有更新。

App.svelte

套接字.svelte

socket.js

在浏览器中,我得到了0items 数组的初始长度,但它永远不会更新,即使消息正在流动。

0 投票
1 回答
507 浏览

svelte - 如何构建实时股票报价的 Svelte 存储

我正在尝试在 Svelte 商店中维护实时股票报价,以便实时更新屏幕上的出价和要价。我不确定如何构建存储以保持数据的反应性和效率。数据来自 websocket,如下所示:

{'symbol':'AAPL', 'bid':305.52, 'ask':305.55}

我最初的尝试如下所示:

我想要做的是在整个 SPA 中提供一个单一的报价地图,但每次更改时,每个单独的报价仅更新其自己的符号,而不是整个页面。

这显然是错误的,但我不确定该怎么做。(这是我第一次使用 Svelte。)

0 投票
2 回答
383 浏览

data-binding - Svelte 从孩子绑定父商店

我可以在子组件中使用绑定指令吗,如果我绑定到的变量是父存储?这与生命周期事件有何关系?只要孩子的 onMount 在父母的 onMount 之前触发(至少在我一次创建新组件树时),如果绑定成功,但变量以 null 开头,我是否得到反应?

0 投票
1 回答
1159 浏览

javascript - 如何在路线更改中保持苗条的商店状态?

我有一个苗条的存储对象,只要对象更改user,它就会设置为另一个对象:consumerconsumer

我可以看到它user正在更新,但是当我通过单击带有 hrefwindow.location.replace()的按钮或商店似乎已重置来更改路线时。

我在文档中找不到任何关于此的内容。如何在路线更改时保留商店?谢谢你的帮助。

0 投票
2 回答
1483 浏览

javascript - 为什么可写数组不能正确更新 Svelte 组件内的值?

我有一个父模板 (App.svelte),它创建一个可写数组并将其传递给一个组件 ( RedOrBlueOrPurple.svelte)。该组件对项目进行迭代。我想传递一个可写数组(而不是创建一个包含整个对象数组的单个可写数组),因为我想subscribe在项目内部发生变化时分别在每个项目上添加处理程序。否则,我的订阅处理程序将需要弄清楚哪个项目已更改,这似乎需要更多工作。

在下面的代码中,第一个按钮确实有效地更改了紫色属性,因为该调用update后面跟着refresh重置父值的 a。如果可能的话,我很想避免这个调用,只使用可写作为父母和孩子都理解和可以使用的接口。

另外,我不喜欢模板必须map在 each 上使用 a 来取出项目,获取商店的价值(使用 svelte 内部调用get_store_value),但我不知道我将如何使用{#each items as $items...}(我不能弄清楚如何在$item这里使用)。有没有更优雅的获取价值的方法?

此外,这似乎真的很不幸,当我调用刷新并设置变量时控制台不显示错误的事实const似乎违反了 JS 规则并且仍然可以编译。我知道 Svelte 在底层注释这个调用以对变化做出反应,但这似乎是错误的。

这是这里的 REPL:https ://svelte.dev/repl/84fbae4358494844a79a7f119b084f01?version=3.19.2

在此处输入图像描述