问题标签 [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.
javascript - 在苗条商店中保存窗口绑定
嗨,互联网上的好人,
我为用户的滚动位置创建了一个侦听器:
<svelte:window bind:scrollY={y} />
我想将此变量保存在商店中,以使其在整个网站上都可以访问。但为此,我需要一个二传手。有没有一种好的高性能方法来做到这一点?
我试过这个,但它不起作用:
javascript - Svelte 派生存储和数组排序
我建立了一个商店,其中包含从我的 API 加载的游乐设施列表:
然后我为过去和未来的游乐设施设置了两个派生商店:
第二种sort
方法没有任何效果。
所以我试着把这个方法放在前面filter
。它有效,但它也排序$pastRides
。事实上,它正在对整个$rides
数组进行排序,这很有意义。
但我不明白为什么sort
之后filter
不起作用。
我错过了什么?
javascript - 是否可以从外部 js 文件访问 Svelte 商店?
我想知道我是否能够从一个普通的 .js 文件访问我的Svelte存储值。
我正在尝试编写基于存储值返回动态值的函数,以将它们导入任何组件中。但是在一个普通的 .js 文件中,我不能只使用 $ 符号访问存储值。
使用存储值并可用于多个组件的基本函数的快速示例:
编辑:改写一下
编辑: 找到了一个解决方案,但我真的不知道它是否真的优化了..
svelte - 使用 svelte/store 更新方法更新对象时是否应该使用扩展运算符?
我正在创建一个使用对象来存储我的数据的商店。
我可以使用扩展运算符更新商店,但我也可以在没有扩展运算符的情况下更新它。
Svelte 是否像 React 一样,我应该在更新对象状态之前使用扩展运算符创建一个新对象,这样我就不会改变原始对象?
withSpreadOperator()
或者withoutSpreadOperator()
……这就是问题所在。
svelte - 如何使用补间存储为 svelte 中的数组值设置动画?
我有一个包含以下数据的可写存储
我想根据 KNOWLEDGE 为进度条设置动画,我在 {#each } 循环中访问知识,但进度条没有动画,因为我必须传递补间存储对象并设置它的值。那么如何为 bar 设置动画呢?如何在循环中将知识值传递给补间对象 set() 方法?
svelte - Svelte 商店未在屏幕上更新
我是 Svelte 的新手,我犯了一个菜鸟错误。我有一个到服务器的 websocket 连接,我正在记录数百条消息并将它们添加到商店,但页面根本没有更新。
App.svelte
套接字.svelte
socket.js
在浏览器中,我得到了0
items 数组的初始长度,但它永远不会更新,即使消息正在流动。
svelte - 如何构建实时股票报价的 Svelte 存储
我正在尝试在 Svelte 商店中维护实时股票报价,以便实时更新屏幕上的出价和要价。我不确定如何构建存储以保持数据的反应性和效率。数据来自 websocket,如下所示:
{'symbol':'AAPL', 'bid':305.52, 'ask':305.55}
我最初的尝试如下所示:
我想要做的是在整个 SPA 中提供一个单一的报价地图,但每次更改时,每个单独的报价仅更新其自己的符号,而不是整个页面。
这显然是错误的,但我不确定该怎么做。(这是我第一次使用 Svelte。)
data-binding - Svelte 从孩子绑定父商店
我可以在子组件中使用绑定指令吗,如果我绑定到的变量是父存储?这与生命周期事件有何关系?只要孩子的 onMount 在父母的 onMount 之前触发(至少在我一次创建新组件树时),如果绑定成功,但变量以 null 开头,我是否得到反应?
javascript - 如何在路线更改中保持苗条的商店状态?
我有一个苗条的存储对象,只要对象更改user
,它就会设置为另一个对象:consumer
consumer
我可以看到它user
正在更新,但是当我通过单击带有 hrefwindow.location.replace()
的按钮或商店似乎已重置来更改路线时。
我在文档中找不到任何关于此的内容。如何在路线更改时保留商店?谢谢你的帮助。
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