superRaytin/redux-saga-in-chinese

关于副作用和异步操作之间的理解

Closed this issue · 0 comments

redux-saga 是一个用于管理 Redux 应用异步操作(Side Effects。译注:直译成 “副作用” 不太通顺,所以这里译为 “异步操作” 更好理解)的中间件(又称异步 action)。

我认为此处的Side Effects应该直译为“副作用”,saga的理念并不是维护和管理异步,而是将所有“非纯(impure)”的东西从源码和逻辑两个层面上独立出来,放在一个隔离的区域内单独管理

举一个最简单的案例,document.cookie的操作很显然是同步的,但是当使用saga时,你并不会在一个action creator中直接写setCookie('myCookie', value),而是会使用dispatch({type: 'SET_COOKIE', payload: ...})交给saga进行处理,同样getCookie也会使用类似的方案,这就是saga本身的概念模型

因此,在中文翻译中将Side Effects作“异步”理解并不是准确的,也可能误导使用者不在自己的应用中将有副作用的代码完全隔离,最终变成不伦不类的模型