redux-saga项目已经存在很长时间了,但是这个库仍然有很多令人困惑的事情.其中一个是:如何开始你的rootSaga.例如,在初学者教程中, rootSaga是通过一系列传奇来启动的.像这样
export default function* rootSaga() {
yield [
helloSaga(),
watchIncrementAsync()
]
}
Run Code Online (Sandbox Code Playgroud)
然而,在使用传奇助手部分,rootSaga由两个分叉的传奇组成.像这样:
export default function* rootSaga() {
yield fork(watchFetchUsers)
yield fork(watchCreateUser)
}
Run Code Online (Sandbox Code Playgroud)
在redux-saga repo中的异步示例中使用了与启动rootSaga相同的方法.但是,如果你查看真实世界和购物卡的例子,你会看到rootSagas那里有一系列分叉的传奇.像这样:
export default function* root() {
yield [
fork(getAllProducts),
fork(watchGetProducts),
fork(watchCheckout)
]
}
Run Code Online (Sandbox Code Playgroud)
另外,如果您在redux-saga问题中阅读了一些讨论,您会看到有些人建议使用spawn而不是fork来为rootSaga保护应用程序完全崩溃,如果您的某个分叉传奇由于某些未处理的异常而被取消.
那么,哪种方式是启动rootSaga的最正确的方法?现有的有什么区别?
redux-saga ×1