Redux-Saga effects
11107 ワード
all
allはいろいろな伝説を一つにした.
delayはsm単位のdelayです
PUTをDispatchと同じように考えればいいです.
takeはタイプの動作を入力すると、次の動作を実行します.
takeEveryはtypeとコールバック関数をパラメータとして受信し,入力タイプの動作時に2番目の受信のコールバック関数を実行する.
takeLatestはtakeEveryと似ていますが、異なる点は、同じタイプの動作が同時に複数の動作を加えた場合、takeLatestは最後の動作のみを実行することです.逆に、TakeEveryはすべての動作を実行します.
二人は同じ仕事をしているが,違いは動機か動機かである.
stateの取得
react-redoxではセレクタの使用と見なすことができます
allはいろいろな伝説を一つにした.
export default function rootSaga() {
all([counter(), login(), post(), todo()])
}
delaydelayはsm単位のdelayです
function* delaySaga() {
yield delay(1000) // 1초
}
putPUTをDispatchと同じように考えればいいです.
function* delayIncreaseSaga() {
yield delay(1000)
yield put(increase())
}
taketakeはタイプの動作を入力すると、次の動作を実行します.
function* increaseSaga() {
while(true) {
yield take(INCREASE)
yield put(increase())
}
}
takeEverytakeEveryはtypeとコールバック関数をパラメータとして受信し,入力タイプの動作時に2番目の受信のコールバック関数を実行する.
function* increaseSaga() {
yield takeEvery(INCREASE, function*() {
yield put(increase())
})
}
takeLatesttakeLatestはtakeEveryと似ていますが、異なる点は、同じタイプの動作が同時に複数の動作を加えた場合、takeLatestは最後の動作のみを実行することです.逆に、TakeEveryはすべての動作を実行します.
// increase 액션 10개가 동시에 들어와도 1밖에 증가 안 함
function* increaseSaga() {
yield takeLatest(INCREASE, function*() {
yield put(increase())
})
}
fork, call二人は同じ仕事をしているが,違いは動機か動機かである.
fork
は非同期で動作します.call
は同期して動作する.function* Fork() {
yield delay(1000);
console.log("fork");
}
function* Call() {
yield delay(1000);
console.log("call");
}
function* ForkTestSaga() {
yield fork(Fork);
console.log("forkTest");
}
// ForkTestSaga 실행 결과
// forkTest
// fork
function* CallTestSaga() {
yield call(Call);
console.log("callTest");
}
// CallTestSaga 실행 결과
// call
// callTest
selectstateの取得
react-redoxではセレクタの使用と見なすことができます
function* increaseSaga() {
const state = yield select();
console.log(state); // {counter: 0}
yield put(increase());
}
Reference
この問題について(Redux-Saga effects), 我々は、より多くの情報をここで見つけました https://velog.io/@chanwoo00106/Redux-Saga-effectsテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol