问题标签 [cyclejs]
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.
cyclejs - 如何从一个 DOM 事件中为两个流供电
表单有一个保存按钮。当点击它应该路由到另一个组件并保存表单数据。但是 router$ 流消耗了 click 事件,使 socket$ 流没有事件可以采取行动。在下面的代码中,saveClick$ 仅适用于 router$,但不适用于 socket$。
如何获得由同一事件提供支持的两个流?imitate()
似乎在做这个把戏,但文档说它存在
允许一件事:流的循环依赖
这是一个非常基本的用例。感觉就像我错过了一些基本的东西。帮助表示赞赏。
redux - 在循环js中动态更新源和接收器?
我正在使用 redux-cycle 编写一个非常简单的应用程序,其中包含 3 个元素:
- 用于输入 url 的文本字段
- 连接到 websocket 端点的“连接”按钮
- 显示传入消息的输出面板
我已经根据这个答案编写了一个非常简单的 websocket 驱动程序https://stackoverflow.com/a/42926532/842860
连线代码是这样的:
问题是如何在单击连接按钮时使 websocket 重新连接到另一个端点?我是否需要修改我的 websocket 驱动程序来捕获事件并重新连接,或者 cyclejs 是否提供了一种动态更新源/接收器的方法?
javascript - 在非洋葱化 Cycle.js 应用程序中使用 cycle-onionify
我可能正在尝试一些愚蠢的事情,但是我有一个足够大的非洋葱化 Cycle.js 应用程序,并且我正在尝试了解onionify 的工作原理,所以我想将一个洋葱化组件嵌入到我原来的非洋葱应用程序中。
所以我有一个简单的 onion-ready 组件,增量/减量示例,还有一个简单的非洋葱循环应用程序,“Hello Last Name”</a> 示例——我如何将两者结合在一起,这样我就有了在同一个网页中一个接一个的增量组件和Hello组件?
Counter.ts
, 洋葱准备组件
index.ts
, 非洋葱主应用
尝试
如果我替换run(main, ...)
为run(counts, ...)
,就像 cycle-onionify 文档建议的完全洋葱化的应用程序一样,我只会看到预期的计数器。
但是counts
,由于 , 的输出onionify(Counter)
是一个函数,所以我认为我不能在我的 main() 中“实例化”它。
同样,我认为我不能通过Counter()
在 main 内部调用来创建计数器组件,因为该函数需要sources.onion
输入,而且我不确定如何创建.onion
具有 type 的字段StateSource
。
问题
我如何Counter
在我的 non-onionified 中使用这个 onion-ready 组件main
?
完整示例
完整示例可在https://gist.github.com/fasiha/939ddc22d5af32bd5a00f7d9946ceb39获得——克隆它,npm install
以获取必要的包,然后make
(运行tsc
并browserify
转换 TypeScript→JavaScript→browserified JS)。
xstream - 创建循环js驱动
我对这个框架比较陌生,正在尝试创建驱动程序。我理解这段代码:
但我还不确定如何让监听器(传入 $)像 http 驱动程序一样获取参数:
cyclejs - Cycle.js 驱动程序中可以有多个 DOM 对象吗?
到目前为止,我发现的所有 Cycle.js 示例都DOM
在. 是否有可能拥有多个对象,例如一个名为“DOM1”和另一个名为“DOM2”的对象?这样做的目的是在一个 HTML 页面中控制两个独立的动态 DOM 区域,以保持第三个 DOM 区域静态定义在DOM1 和 DOM2 之间。drivers
run(main, drivers)
index.html
作为一个附带问题,我看到的示例通常div
以 id 为#app
or的 HTML 为目标#main-container
,然后使用@cycle/dom
div
函数定义接收器,从而div
在div
. 我还没有找到关于虚拟节点应该如何定义的明确解释或参考。假设上面的 DOM2 以一个 HTMLform
元素为目标,并且应该包含两个input
元素。是否必须div
像所有示例中一样以 a 开头,还是可以input
直接在.map
调用中定义 s,如果是,如何定义?
javascript - Cycle.js 在按钮单击时获取输入值
我正在使用 Cycle.js 开发待办事项列表示例应用程序,但遇到了以下问题。我正在尝试在用户单击“添加”按钮时处理添加新的待办事项,这工作正常,但另一方面,我有一个提供文本输入更改事件的流,当与点击流结合时,它使我的应用程序添加新的待办事项即使文本输入发生更改,但未单击“添加”按钮,例如焦点移出。在这种情况下有什么方法?我可以直接消除 todoChange$ 流并直接从 addClick$ 流访问 DOM,还是违反 Cycle.js 的理念?
javascript - Cycle Js - 将历史与状态同步的方法?
我正在尝试在一个非常简单的循环 js 示例应用程序中将浏览器历史记录与包含在 onionify 状态存储中的状态同步。我从状态存储映射到历史没有问题,问题在于将 history.state 减少回状态存储。从本质上讲,我陷入了状态流相互流入的无限循环中,这会使浏览器崩溃。
我想我的问题是:有没有更简单的方法可以做到这一点?这里有帮助的操作员吗?我觉得我想做的事情基本上是不可能的。任何有用资源的答案或链接将不胜感激。
javascript - Cycle.js DOM 驱动程序是否适用于 JSX 进行转换?
我在一段代码的 DOM 源之上有一个非常简单的转换:
现在,如果组件(即tt_slider
)指定了没有 JSX 的 HTML 代码,比如说
然后我从我的转换中获得所需的输出:
但是如果我使用 JSX 指定这个:
我只是得到
难道我做错了什么?这是标准行为吗?或者可能是 Cycles 某处的错误?
谢谢
javascript - 使用 CycleJS 中 localStorage 的初始值折叠
我正在使用 cycleJS 制作一个表情符号查看器应用程序,用户可以在其中单击任何表情符号以从他们的收藏夹列表中添加/删除它。该列表也会localstorage
在每次更改时保存。我通过折叠点击流(在每次点击时添加或删除表情符号)使用xstream构建列表:
我可以使用@cycle/storage驱动程序将此流保存localStorage
并加载到页面上:
但是,我无法弄清楚如何将数组从 localStorage 预加载到最喜欢的流中。从 加载数组后localStorage
,我尝试以favEmojis$
我能想到的各种方式将其与流合并/连接。例如:
但这不起作用 - 数组 fromlocalstorage
被折叠clickFavEmoji
流覆盖。如果有人能指出我正确的方向,我将不胜感激。
注意完整的代码很长,所以我只包括了看起来最相关的部分。