📕 おもしろいRedux(0)
実は、李徳思は面白くない.しかもまだ難しいです.リデスの欠点には高い走行曲線があり、私だけではないようだ.
しかし、道徳がない場合、状態管理はもっと面白くなく、時には怒ることもある.
そこで、フロントエンドのキーの1つであるステータス管理をよりよく行うために、reduceを学びましょう.
フェイスブック(玄梅塔)は、自分の固有の問題を修復するための新しいモデルFluxを発表した.
そして,Fluxと所与の状態を変える方法reduceの概念を組み合わせてReduxツールが出現した.
Reduxの動作は大きく4つの要素のコラボレーションとして理解できる. Action creator Dispatcher Store Rendering function 動作に従ってDispatcherを呼び出し、Reduserでstateを操作します.次に、任意のレンダリング関数を定義し、ショップが関数を購読すると呼び出されます.
storeは、reduceパケットが提供する機能によってdispatcherを呼び出すことができる.
また、subscribe関数の実行結果により、unsubscribe関数が返され、サブスクリプションをキャンセルできます.
理徳キット内部のmoduleinportは複雑なので、パッケージを使って作業しています.
簡単なカウンタを作るために、Ridexの一部の機能しか使われておらず、コード量がかなりあります.
Ridex開発者のDanabromoveはYou might not need reduxの文章を発表した.ツールを導入する前に、アプリケーションの規模や機能に応じて適切に選択したほうがいいです.
しかし、道徳がない場合、状態管理はもっと面白くなく、時には怒ることもある.
そこで、フロントエンドのキーの1つであるステータス管理をよりよく行うために、reduceを学びましょう.
Redux?
フェイスブック(玄梅塔)は、自分の固有の問題を修復するための新しいモデルFluxを発表した.
そして,Fluxと所与の状態を変える方法reduceの概念を組み合わせてReduxツールが出現した.
Reduxの動作は大きく4つの要素のコラボレーションとして理解できる.
🔨 実習
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<script src="./counter.js" defer></script>
<title>Document</title>
</head>
<body>
<span class="number">0</span>
<button class="plus">+</button>
<button class="minus">-</button>
<button class="unsubscribe">Unsubscribe</button>
</body>
</html>
ボタンを押すと数字が変わるカウンタを作ります.Storeの状態に応じて値を変更し、Unsubscribeボタンを押して購読をキャンセルします.import { createStore } from "redux";
const PLUS = "PLUS";
const MINUS = "MINUS";
const plus = () => ({ type: PLUS });
const minus = () => ({ type: MINUS });
const initialState = 0;
function counterReducer(state = initialState, action) {
console.log(action);
switch (action.type) {
case PLUS:
return state + 1;
case MINUS:
return state - 1;
default:
return state;
}
}
const store = createStore(counterReducer);
PLUSとMINUSを持つ動作生成関数をtypeでそれぞれ宣言した.次に、数値の初期値InitialStateを作成し、動作に応じてStateのreduceを変更します.storeは、reduceパケットが提供する機能によってdispatcherを呼び出すことができる.
function init() {
const number = document.querySelector(".number");
const plusBtn = document.querySelector(".plus");
const minusBtn = document.querySelector(".minus");
const unsubscribeBtn = document.querySelector(".unsubscribe");
const render = () => {
const state = store.getState();
number.innerText = state;
};
const unsubscribe = store.subscribe(render);
plusBtn.addEventListener("click", () => store.dispatch(plus()));
minusBtn.addEventListener("click", () => store.dispatch(minus()));
unsubscribeBtn.addEventListener("click", () => unsubscribe());
}
init();
ボタンにイベントリスナーを登録し、storeにrender関数を購読させます.storeはステータス変更時にrender関数を呼び出します.また、subscribe関数の実行結果により、unsubscribe関数が返され、サブスクリプションをキャンセルできます.
😪 ポスト
理徳キット内部のmoduleinportは複雑なので、パッケージを使って作業しています.
簡単なカウンタを作るために、Ridexの一部の機能しか使われておらず、コード量がかなりあります.
Ridex開発者のDanabromoveはYou might not need reduxの文章を発表した.ツールを導入する前に、アプリケーションの規模や機能に応じて適切に選択したほうがいいです.
Reference
この問題について(📕 おもしろいRedux(0)), 我々は、より多くの情報をここで見つけました https://velog.io/@ja960508/재미있는-Redux0テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol