[Cycle.js] The Cycle.js principle: separating logic from effects

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Cycle.js] The Cycle.js principle: separating logic from effects相关的知识,希望对你有一定的参考价值。

The guiding principle in Cycle.js is we want to separate logic from effects. This first part here was logical, and this second part here was effects. Effects are everything that change the external world somehow, the real world such as the DOM is connected to the browser, which is the connected to the user, so when we do something like set the text content, we are changing the screen that will shown to the user. So things like console.log and HTTP network requests, all of these things are effects, and these things live in subscribes.

Logic on the other hand, this is not changing the external world anyhow, it‘s just an event stream of numbers every second, and we‘re mapping that event stream to another event stream with strings. This part here is functional, it‘s all about mapping some primitives to others, and this side is imperatives. Our guiding principle for Cycle.js is we want to push subscribes as far away as we can from our app.

So this part of subscribe we want this to live in the framework, and this part is the only thing that the developer will write as the app. That is the guiding principle to separate logic from effects.

console.clear();
// Logic
Rx.Observable.timer(0,1000)
.map( i => `Second elapsed ${i}`)

// Effect
.subscribe( text => console.log(text))

 

以上是关于[Cycle.js] The Cycle.js principle: separating logic from effects的主要内容,如果未能解决你的问题,请参考以下文章

[Cycle.js] Read effects from the DOM: click events

[Cycle.js] Hello World in Cycle.js

学习RxJS:Cycle.js

学习RxJS:Cycle.js

替换 cycle2.js 中的 <img> 标签

在 Cycle.js 中呈现所有 dom 后运行 js 代码