{"id":28226,"date":"2023-06-26T23:53:25","date_gmt":"2023-06-26T20:23:25","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/react-with-redux-the-definitive-guide-4gbj\/"},"modified":"2023-06-26T23:53:25","modified_gmt":"2023-06-26T20:23:25","slug":"react-with-redux-the-definitive-guide-4gbj","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/react-with-redux-the-definitive-guide-4gbj\/","title":{"rendered":"\u0648\u0627\u06a9\u0646\u0634 \u0628\u0627 Redux &#8211; \u0631\u0627\u0647\u0646\u0645\u0627\u06cc \u0642\u0637\u0639\u06cc."},"content":{"rendered":"<div data-article-id=\"1476081\" id=\"article-body\">\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u067e\u0633\u062a \u0628\u0647 \u0646\u062d\u0648\u0647 \u0627\u062f\u063a\u0627\u0645 redux \u0628\u0627 React JS \u06cc\u0627 Next JS \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u062d\u0627\u0644\u062a \u062c\u0647\u0627\u0646\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0648\u0628 \u062e\u0648\u062f \u062e\u0648\u0627\u0647\u06cc\u0645 \u067e\u0631\u062f\u0627\u062e\u062a.  \u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0645\u0627 \u0631\u0634\u062f \u0645\u06cc \u06a9\u0646\u062f\u060c \u0645\u0627 \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u0645 \u0648\u0636\u0639\u06cc\u062a \u0631\u0627 \u062f\u0631 \u0633\u0631\u0627\u0633\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f \u0628\u0647 \u0627\u0634\u062a\u0631\u0627\u06a9 \u0628\u06af\u0630\u0627\u0631\u06cc\u0645.  \u0628\u0631\u0627\u06cc \u0627\u0646\u062c\u0627\u0645 \u0627\u06cc\u0646 \u06a9\u0627\u0631\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u0645 \u0627\u0632 \u06cc\u06a9 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u0645\u062f\u06cc\u0631\u06cc\u062a \u062d\u0627\u0644\u062a \u0628\u0647 \u0646\u0627\u0645 redux \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0648\u0636\u0639\u06cc\u062a \u062e\u0648\u062f \u062f\u0631 \u0633\u0631\u0627\u0633\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u0645.  \u067e\u0633 \u0628\u06cc\u0627\u06cc\u06cc\u062f \u062f\u0631 \u0622\u0646 \u0634\u06cc\u0631\u062c\u0647 \u0628\u0632\u0646\u06cc\u0645.<\/p>\n<p>\u0627\u0628\u062a\u062f\u0627 \u0628\u06cc\u0627\u06cc\u06cc\u062f \u06cc\u06a9 \u067e\u0631\u0648\u0698\u0647 react \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u0645.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"nx\">npx<\/span> <span class=\"nx\">create<\/span><span class=\"o\">-<\/span><span class=\"nx\">react<\/span><span class=\"o\">-<\/span><span class=\"nx\">app<\/span> <span class=\"nx\">redux<\/span><span class=\"o\">-<\/span><span class=\"nx\">tutorial<\/span>\n<span class=\"nx\">cd<\/span> <span class=\"nx\">redux<\/span><span class=\"o\">-<\/span><span class=\"nx\">tutorial<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u0647\u0627\u06cc \u0644\u0627\u0632\u0645 \u0631\u0627 \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"nx\">npm<\/span> <span class=\"nx\">i<\/span> <span class=\"nx\">react<\/span><span class=\"o\">-<\/span><span class=\"nx\">redux<\/span> <span class=\"nx\">redux<\/span> <span class=\"nx\">redux<\/span><span class=\"o\">-<\/span><span class=\"nx\">thunk<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0647\u0646\u06af\u0627\u0645 \u06cc\u0627\u062f\u06af\u06cc\u0631\u06cc redux \u062f\u0648 \u06a9\u0627\u0631 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f.<\/p>\n<ol>\n<li>\u062f\u0631\u06a9 \u0645\u0641\u0627\u0647\u06cc\u0645 (\u0628\u0647 \u0635\u0648\u0631\u062a \u0646\u0638\u0631\u06cc)<\/li>\n<li>\u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc redux \u062f\u0631 \u062f\u0627\u062e\u0644 \u0628\u0631\u0646\u0627\u0645\u0647 \u0645\u0627 \u0628\u0627 \u0642\u0644\u0627\u0628 (\u062f\u0631 \u0635\u0648\u0631\u062a \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u062c\u0632\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc)<\/li>\n<\/ol>\n<p>\u062d\u0627\u0644\u0627 \u0628\u06cc\u0627\u06cc\u06cc\u062f \u0628\u0647 \u062c\u0646\u0628\u0647 \u0647\u0627\u06cc \u0645\u0641\u0647\u0648\u0645\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 redux \u0646\u06af\u0627\u0647\u06cc \u0628\u06cc\u0646\u062f\u0627\u0632\u06cc\u0645.  Redux \u062f\u0627\u0631\u0627\u06cc 4 \u0627\u0635\u0637\u0644\u0627\u062d \u0645\u0631\u062a\u0628\u0637 \u0628\u0627 \u0622\u0646 \u0627\u0633\u062a.<\/p>\n<ol>\n<li>\u0627\u0642\u062f\u0627\u0645\u0627\u062a<\/li>\n<li>\u0627\u0646\u0648\u0627\u0639<\/li>\n<li>\u06a9\u0627\u0647\u0646\u062f\u0647 \u0647\u0627 <\/li>\n<li>\u0641\u0631\u0648\u0634\u06af\u0627\u0647<\/li>\n<\/ol>\n<p>\u0641\u0631\u0648\u0634\u06af\u0627\u0647 \u0628\u0631\u0627\u06cc \u0630\u062e\u06cc\u0631\u0647 \u0627\u06cc\u0627\u0644\u062a \u062f\u0631 \u0633\u0637\u062d \u062c\u0647\u0627\u0646\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<p>\u06a9\u0627\u0647\u0646\u062f\u0647 \u0647\u0627 \u0639\u0645\u0644\u06a9\u0631\u062f\u0647\u0627\u06cc\u06cc \u0647\u0633\u062a\u0646\u062f \u06a9\u0647 \u0628\u0647 \u062f\u0633\u062a\u06a9\u0627\u0631\u06cc \u0648\u0636\u0639\u06cc\u062a \u06a9\u0645\u06a9 \u0645\u06cc \u06a9\u0646\u0646\u062f.<\/p>\n<p>\u06a9\u0646\u0634 \u0647\u0627 \u062a\u0648\u0627\u0628\u0639 \u06a9\u0645\u06a9\u06cc \u0647\u0633\u062a\u0646\u062f \u06a9\u0647 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0628\u0631\u0627\u06cc \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u06a9\u0627\u0647\u0646\u062f\u0647 \u0647\u0627 \u0628\u0631\u0627\u06cc \u062a\u063a\u06cc\u06cc\u0631 \u062d\u0627\u0644\u062a \u0633\u0627\u062e\u062a\u0647 \u0645\u06cc \u0634\u0648\u0646\u062f.<\/p>\n<p>\u0627\u0646\u0648\u0627\u0639 \u0646\u0627\u0645 \u0647\u0627\u06cc\u06cc \u0647\u0633\u062a\u0646\u062f \u06a9\u0647 \u0645\u0627 \u0628\u0631\u0627\u06cc \u0627\u0646\u062c\u0627\u0645 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u062d\u0627\u0644\u062a \u062f\u0631 \u0645\u062d\u06cc\u0637 redux \u062f\u0627\u062f\u0647 \u0627\u06cc\u0645.<\/p>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u067e\u0648\u0634\u0647 \u0647\u0627 \u0648 \u0641\u0627\u06cc\u0644 \u0647\u0627\u06cc \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0627\u062f\u063a\u0627\u0645 redux \u062f\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u06cc\u0645. <\/p>\n<p>\u06cc\u06a9 \u0633\u0627\u062e\u062a\u0627\u0631 \u067e\u0648\u0634\u0647 \u0645\u0627\u0646\u0646\u062f \u0632\u06cc\u0631 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f. <\/p>\n<p><\/p>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u0645\u0627 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u06a9\u0648\u0686\u06a9 TODO \u0631\u0627 \u0628\u0627 redux \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0627\u0646\u062c\u0627\u0645 \u062e\u0648\u0627\u0647\u06cc\u0645 \u062f\u0627\u062f.  \u0645\u0627 \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0627\u0647\u0646\u062f\u0647 \u0647\u0627\u06cc \u062e\u0648\u062f \u0631\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 todoReducer \u0646\u0627\u0645 \u06af\u0630\u0627\u0631\u06cc \u06a9\u0646\u06cc\u0645 (\u0634\u0645\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0622\u0646 \u0631\u0627 \u0647\u0631 \u0686\u06cc\u0632\u06cc \u0645\u0627\u0646\u0646\u062f userReducer \u0648 \u063a\u06cc\u0631\u0647 \u0646\u0627\u0645 \u06af\u0630\u0627\u0631\u06cc \u06a9\u0646\u06cc\u062f)<\/p>\n<p>\u0645\u0627 \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u0645 2 \u0646\u0648\u0639 \u0648 2 \u0627\u06a9\u0634\u0646 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u0645.  \u0627\u0646\u0648\u0627\u0639 \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f\u060c<\/p>\n<ol>\n<li>\u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646<\/li>\n<li>\u062d\u0630\u0641<\/li>\n<\/ol>\n<p>\u0648 2 \u0627\u0642\u062f\u0627\u0645 \u0628\u0647 \u0646\u0627\u0645<\/p>\n<ol>\n<li>addTodoAction<\/li>\n<li>\u062d\u0630\u0641 TodoAction<\/li>\n<\/ol>\n<p>(\u0634\u0645\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u06a9\u0634\u0646 \u0647\u0627 \u0648 \u06a9\u0627\u0647\u0634 \u062f\u0647\u0646\u062f\u0647 \u0647\u0627 \u0631\u0627 \u0628\u0647 \u062f\u0644\u062e\u0648\u0627\u0647 \u0646\u0627\u0645 \u0628\u0628\u0631\u06cc\u062f \u0627\u0645\u0627 \u0645\u0646 \u0627\u0632 \u0627\u06cc\u0646 \u0642\u0627\u0644\u0628 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u0645 \u06a9\u0647 \u0628\u0647 \u062e\u0648\u0628\u06cc \u06a9\u0627\u0631 \u0645\u06cc \u06a9\u0646\u062f.)<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight jsx\"><code>\n<span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">ADD_TODO<\/span><span class=\"p\">,<\/span> <span class=\"nx\">DELETE_TODO<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">..\/Types\/TodoTypes<\/span><span class=\"dl\">\"<\/span><span class=\"p\">;<\/span>\n\n<span class=\"k\">export<\/span> <span class=\"kd\">const<\/span> <span class=\"nx\">addTodoAction<\/span> <span class=\"o\">=<\/span> <span class=\"p\">(<\/span><span class=\"nx\">data<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">return<\/span> <span class=\"p\">{<\/span>\n    <span class=\"na\">type<\/span><span class=\"p\">:<\/span> <span class=\"nx\">ADD_TODO<\/span><span class=\"p\">,<\/span>\n    <span class=\"na\">data<\/span><span class=\"p\">:<\/span> <span class=\"nx\">data<\/span><span class=\"p\">,<\/span>\n  <span class=\"p\">};<\/span>\n<span class=\"p\">};<\/span>\n<span class=\"k\">export<\/span> <span class=\"kd\">const<\/span> <span class=\"nx\">deleteTodoAction<\/span> <span class=\"o\">=<\/span> <span class=\"p\">(<\/span><span class=\"nx\">data<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">return<\/span> <span class=\"p\">{<\/span>\n    <span class=\"na\">type<\/span><span class=\"p\">:<\/span> <span class=\"nx\">DELETE_TODO<\/span><span class=\"p\">,<\/span>\n    <span class=\"na\">data<\/span><span class=\"p\">:<\/span> <span class=\"nx\">data<\/span><span class=\"p\">,<\/span>\n  <span class=\"p\">};<\/span>\n<span class=\"p\">};<\/span>\n\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062d\u0627\u0644\u0627 \u0628\u0647 \u0641\u0627\u06cc\u0644 todoReducer \u0631\u0641\u062a\u0647 \u0648 \u06a9\u062f \u0632\u06cc\u0631 \u0631\u0627 \u06a9\u067e\u06cc \u06a9\u0646\u06cc\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight jsx\"><code>\n<span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">ADD_TODO<\/span><span class=\"p\">,<\/span> <span class=\"nx\">DELETE_TODO<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">..\/Types\/TodoTypes<\/span><span class=\"dl\">\"<\/span><span class=\"p\">;<\/span>\n\n<span class=\"kd\">const<\/span> <span class=\"nx\">initialState<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span>\n  <span class=\"na\">todos<\/span><span class=\"p\">:<\/span> <span class=\"p\">[{<\/span> <span class=\"na\">name<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">Redux<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span> <span class=\"na\">id<\/span><span class=\"p\">:<\/span> <span class=\"mi\">1<\/span> <span class=\"p\">}],<\/span>\n<span class=\"p\">};<\/span>\n\n<span class=\"k\">export<\/span> <span class=\"kd\">const<\/span> <span class=\"nx\">TodoReducers<\/span> <span class=\"o\">=<\/span> <span class=\"p\">(<\/span><span class=\"nx\">state<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">initialState<\/span><span class=\"p\">,<\/span> <span class=\"nx\">action<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">switch<\/span> <span class=\"p\">(<\/span><span class=\"nx\">action<\/span><span class=\"p\">.<\/span><span class=\"nx\">type<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n    <span class=\"k\">case<\/span> <span class=\"na\">ADD_TODO<\/span><span class=\"p\">:<\/span>\n      <span class=\"k\">return<\/span> <span class=\"p\">{<\/span> <span class=\"p\">...<\/span><span class=\"nx\">state<\/span><span class=\"p\">,<\/span> <span class=\"na\">todos<\/span><span class=\"p\">:<\/span> <span class=\"p\">[...<\/span><span class=\"nx\">state<\/span><span class=\"p\">.<\/span><span class=\"nx\">todos<\/span><span class=\"p\">,<\/span> <span class=\"nx\">action<\/span><span class=\"p\">.<\/span><span class=\"nx\">data<\/span><span class=\"p\">]<\/span> <span class=\"p\">};<\/span>\n    <span class=\"k\">case<\/span> <span class=\"na\">DELETE_TODO<\/span><span class=\"p\">:<\/span>\n      <span class=\"k\">return<\/span> <span class=\"p\">{<\/span>\n        <span class=\"p\">...<\/span><span class=\"nx\">state<\/span><span class=\"p\">,<\/span>\n        <span class=\"na\">todos<\/span><span class=\"p\">:<\/span> <span class=\"nx\">state<\/span><span class=\"p\">.<\/span><span class=\"nx\">todos<\/span><span class=\"p\">.<\/span><span class=\"nx\">filter<\/span><span class=\"p\">((<\/span><span class=\"nx\">item<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nx\">item<\/span><span class=\"p\">.<\/span><span class=\"nx\">id<\/span> <span class=\"o\">!==<\/span> <span class=\"nx\">action<\/span><span class=\"p\">.<\/span><span class=\"nx\">data<\/span><span class=\"p\">),<\/span>\n      <span class=\"p\">};<\/span>\n\n    <span class=\"nl\">default<\/span><span class=\"p\">:<\/span>\n      <span class=\"k\">return<\/span> <span class=\"nx\">state<\/span><span class=\"p\">;<\/span>\n  <span class=\"p\">}<\/span>\n<span class=\"p\">};<\/span>\n\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u067e\u0633 \u0627\u06cc\u0646\u062c\u0627 \u0686\u0647 \u062e\u0628\u0631 \u0627\u0633\u062a\u061f<\/p>\n<p>\u0645\u0627 \u06cc\u06a9 \u0639\u0628\u0627\u0631\u062a switch case \u0628\u0631\u0627\u06cc \u0631\u0633\u06cc\u062f\u06af\u06cc \u0628\u0647 2 \u0646\u0648\u0639 \u0627\u06cc\u062c\u0627\u062f \u0634\u062f\u0647 \u0648 \u0628\u0647 \u0631\u0648\u0632 \u0631\u0633\u0627\u0646\u06cc \u0648\u0636\u0639\u06cc\u062a TODOS \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u0647 \u0627\u06cc\u0645.  \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0648\u0642\u062a\u06cc \u06cc\u06a9 Action \u0631\u0627 \u0628\u0627 \u06cc\u06a9 Type \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0645\u06cc \u06a9\u0646\u06cc\u0645\u060c \u062f\u0633\u062a\u0648\u0631 switch case \u0628\u0647 \u0635\u0648\u0631\u062a \u0634\u0631\u0637\u06cc \u0646\u0648\u0639 \u0631\u0627 \u0645\u06cc \u0628\u06cc\u0646\u062f \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f ADD \u06cc\u0627 DELETE \u0628\u0627\u0634\u062f \u0648 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u062d\u0627\u0644\u062a \u0644\u0627\u0632\u0645 \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc \u062f\u0647\u062f.<\/p>\n<p>\u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644 \u062f\u0631 ADD Type\u060c \u0627\u06af\u0631 \u0646\u0648\u0639\u06cc \u0628\u0647 \u0646\u0627\u0645 ADD \u0627\u0632 \u06cc\u06a9 \u0627\u0642\u062f\u0627\u0645 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0634\u0648\u062f\u060c \u0648\u0636\u0639\u06cc\u062a \u0628\u0647 \u0631\u0648\u0632 \u0645\u06cc \u0634\u0648\u062f \u062a\u0627 \u0622\u0646 \u0645\u0648\u0631\u062f todo \u0631\u0627 \u062f\u0631 \u0644\u06cc\u0633\u062a \u06a9\u0627\u0631\u0647\u0627 \u06a9\u0647 \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06cc\u06a9 \u0622\u0631\u0627\u06cc\u0647 \u0627\u0633\u062a\u060c \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u062f.<\/p>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u0627\u06cc\u0646 \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u06af\u06cc\u062c \u06a9\u0646\u0646\u062f\u0647 \u0628\u0647 \u0646\u0638\u0631 \u0628\u0631\u0633\u062f\u060c \u0627\u0645\u0627 \u062f\u0631 \u0627\u0628\u062a\u062f\u0627 \u0628\u0647 \u0633\u062e\u062a\u06cc \u0645\u06cc \u062a\u0648\u0627\u0646 \u0627\u0632 redux \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0631\u062f\u060c \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0627\u062c\u0627\u0632\u0647 \u062f\u0647\u06cc\u062f \u0627\u062c\u0631\u0627 \u0631\u0627 \u0628\u0628\u06cc\u0646\u06cc\u0645.<\/p>\n<p>\u0628\u0647 \u0641\u0627\u06cc\u0644 index.js \u06cc\u0627 \u0641\u0627\u06cc\u0644\u06cc \u06a9\u0647 \u0631\u06cc\u0634\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0634\u0645\u0627 \u0627\u0633\u062a \u0628\u0631\u0648\u06cc\u062f \u0648 wrapper redux \u0631\u0627 \u0628\u0647 \u0627\u06cc\u0646 \u0635\u0648\u0631\u062a \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight jsx\"><code><span class=\"k\">import<\/span> <span class=\"nx\">React<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">react<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">import<\/span> <span class=\"nx\">ReactDOM<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">react-dom\/client<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">import<\/span> <span class=\"nx\">App<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">.\/App<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">Provider<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">react-redux<\/span><span class=\"dl\">'<\/span>\n<span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">store<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">.\/Redux\/Reducer<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n\n<span class=\"kd\">const<\/span> <span class=\"nx\">root<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">ReactDOM<\/span><span class=\"p\">.<\/span><span class=\"nx\">createRoot<\/span><span class=\"p\">(<\/span><span class=\"nb\">document<\/span><span class=\"p\">.<\/span><span class=\"nx\">getElementById<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">root<\/span><span class=\"dl\">'<\/span><span class=\"p\">));<\/span>\n<span class=\"nx\">root<\/span><span class=\"p\">.<\/span><span class=\"nx\">render<\/span><span class=\"p\">(<\/span>\n  <span class=\"p\">&lt;<\/span><span class=\"nc\">Provider<\/span> <span class=\"na\">store<\/span><span class=\"p\">=<\/span><span class=\"si\">{<\/span><span class=\"nx\">store<\/span><span class=\"si\">}<\/span><span class=\"p\">&gt;<\/span>\n    <span class=\"p\">&lt;<\/span><span class=\"nc\">App<\/span> <span class=\"p\">\/&gt;<\/span>\n  <span class=\"p\">&lt;\/<\/span><span class=\"nc\">Provider<\/span><span class=\"p\">&gt;<\/span>\n<span class=\"p\">);<\/span>\n\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0628\u0647 \u0627\u06cc\u0646 \u062a\u0631\u062a\u06cc\u0628 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 redux \u062f\u0631 \u062f\u0627\u062e\u0644 React JS\u060c Next JS \u06cc\u0627 \u0647\u0631 \u0641\u0631\u06cc\u0645 \u0648\u0631\u06a9 \u0641\u0631\u0627\u0646\u062a \u0627\u0646\u062f \u062f\u06cc\u06af\u0631\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f \u0648 \u062d\u062a\u06cc \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u0647\u0645\u0627\u0646 \u06a9\u062f \u062f\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 react native \u062e\u0648\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u0627\u062c\u0627\u0632\u0647 \u062f\u0647\u06cc\u062f \u0627\u0632 \u0642\u0644\u0627\u0628 \u0647\u0627\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc \u0627\u0631\u0627\u0626\u0647 \u0634\u062f\u0647 \u062a\u0648\u0633\u0637 \u0628\u0633\u062a\u0647 react-redux \u0628\u0631\u0627\u06cc \u062f\u0631\u06cc\u0627\u0641\u062a \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0630\u062e\u06cc\u0631\u0647 \u0634\u062f\u0647 \u062f\u0631 \u062d\u0627\u0644\u062a \u062c\u0647\u0627\u0646\u06cc \u0648 \u0627\u0635\u0644\u0627\u062d \u0622\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u0645.<\/p>\n<p>\u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u062f\u0631 \u06a9\u062f \u0632\u06cc\u0631 \u06a9\u0627\u0631\u06cc \u06a9\u0647 \u0645\u0627 \u0627\u0646\u062c\u0627\u0645 \u062e\u0648\u0627\u0647\u06cc\u0645 \u062f\u0627\u062f \u0627\u06cc\u0646 \u0627\u0633\u062a \u06a9\u0647 \u06cc\u06a9 todo \u0627\u0636\u0627\u0641\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645 \u0648 \u0628\u0627 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0639\u0645\u0644\u06cc \u06a9\u0647 \u0642\u0628\u0644\u0627\u064b \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0631\u062f\u0647 \u0627\u06cc\u0645\u060c \u0622\u0646 \u0631\u0627 \u0628\u0627 \u06a9\u0645\u06a9 \u0627\u0631\u0633\u0627\u0644 \u062d\u0630\u0641 \u0645\u06cc \u06a9\u0646\u06cc\u0645.  \u0648 \u0633\u067e\u0633 \u0627\u0632 useSelector \u0628\u0631\u0627\u06cc \u062f\u0631\u06cc\u0627\u0641\u062a \u062f\u0627\u062f\u0647 \u0647\u0627 \u0648 \u0646\u0634\u0627\u0646 \u062f\u0627\u062f\u0646 \u06a9\u0627\u0631\u0647\u0627 \u0628\u0647 \u06a9\u0627\u0631\u0628\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645.  \u0645\u0627 \u0627\u0632 \u062a\u0627\u0628\u0639 \u0646\u0642\u0634\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f \u0632\u06cc\u0631\u0627 \u062d\u0627\u0644\u062a todo \u0631\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u0622\u0631\u0627\u06cc\u0647 \u0645\u0642\u062f\u0627\u0631\u062f\u0647\u06cc \u0627\u0648\u0644\u06cc\u0647 \u06a9\u0631\u062f\u06cc\u0645.  \u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u06a9\u0627\u0631\u0628\u0631 \u062f\u06a9\u0645\u0647 \u0627\u0631\u0633\u0627\u0644 \u0631\u0627 \u0641\u0634\u0627\u0631 \u0645\u06cc\u200c\u062f\u0647\u062f\u060c addTodoAction \u0631\u0627 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645 \u0648 todo \u0631\u0627 \u0627\u0636\u0627\u0641\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645 \u0648 \u0627\u06af\u0631 \u0631\u0648\u06cc delete \u0641\u0634\u0627\u0631 \u062f\u0627\u062f\u060c \u0628\u0627 \u0641\u06cc\u0644\u062a\u0631 \u06a9\u0631\u062f\u0646 \u0622\u0646 \u0628\u0627 \u0634\u0646\u0627\u0633\u0647 \u0645\u0646\u062d\u0635\u0631\u0628\u0647\u200c\u0641\u0631\u062f\u06cc \u06a9\u0647 \u062a\u0648\u0644\u06cc\u062f \u06a9\u0631\u062f\u0647\u200c\u0627\u06cc\u0645\u060c todo \u0631\u0627 \u062d\u0630\u0641 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight jsx\"><code>\n<span class=\"k\">import<\/span> <span class=\"nx\">React<\/span><span class=\"p\">,<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">useEffect<\/span><span class=\"p\">,<\/span> <span class=\"nx\">useState<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">react<\/span><span class=\"dl\">\"<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">useDispatch<\/span><span class=\"p\">,<\/span> <span class=\"nx\">useSelector<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">react-redux<\/span><span class=\"dl\">\"<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">addTodoAction<\/span><span class=\"p\">,<\/span> <span class=\"nx\">deleteTodoAction<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">.\/Redux\/Actions\/TodoActions<\/span><span class=\"dl\">\"<\/span><span class=\"p\">;<\/span>\n<span class=\"kd\">function<\/span> <span class=\"nx\">App<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"p\">[<\/span><span class=\"nx\">name<\/span><span class=\"p\">,<\/span> <span class=\"nx\">setName<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">useState<\/span><span class=\"p\">();<\/span>\n\n  <span class=\"kd\">const<\/span> <span class=\"nx\">dispatch<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">useDispatch<\/span><span class=\"p\">();<\/span>\n\n  <span class=\"kd\">const<\/span> <span class=\"nx\">todoData<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">useSelector<\/span><span class=\"p\">((<\/span><span class=\"nx\">state<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span><span class=\"nx\">state<\/span><span class=\"p\">.<\/span><span class=\"nx\">TodoReducers<\/span><span class=\"p\">);<\/span>\n\n  <span class=\"k\">return<\/span> <span class=\"p\">(<\/span>\n    <span class=\"p\">&lt;<\/span><span class=\"nt\">div<\/span>\n      <span class=\"na\">style<\/span><span class=\"p\">=<\/span><span class=\"si\">{<\/span><span class=\"p\">{<\/span>\n        <span class=\"na\">margin<\/span><span class=\"p\">:<\/span> <span class=\"mi\">200<\/span><span class=\"p\">,<\/span>\n      <span class=\"p\">}<\/span><span class=\"si\">}<\/span>\n    <span class=\"p\">&gt;<\/span>\n\n      <span class=\"p\">&lt;<\/span><span class=\"nt\">div<\/span><span class=\"p\">&gt;<\/span>\n        <span class=\"p\">&lt;<\/span><span class=\"nt\">input<\/span>\n          <span class=\"na\">type<\/span><span class=\"p\">=<\/span><span class=\"s\">\"text\"<\/span>\n          <span class=\"na\">value<\/span><span class=\"p\">=<\/span><span class=\"si\">{<\/span><span class=\"nx\">name<\/span><span class=\"si\">}<\/span>\n          <span class=\"na\">onChange<\/span><span class=\"p\">=<\/span><span class=\"si\">{<\/span><span class=\"p\">(<\/span><span class=\"nx\">e<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n            <span class=\"nx\">setName<\/span><span class=\"p\">(<\/span><span class=\"nx\">e<\/span><span class=\"p\">.<\/span><span class=\"nx\">target<\/span><span class=\"p\">.<\/span><span class=\"nx\">value<\/span><span class=\"p\">);<\/span>\n          <span class=\"p\">}<\/span><span class=\"si\">}<\/span>\n        <span class=\"p\">\/&gt;<\/span>\n      <span class=\"p\">&lt;\/<\/span><span class=\"nt\">div<\/span><span class=\"p\">&gt;<\/span>\n\n      <span class=\"p\">&lt;<\/span><span class=\"nt\">button<\/span>\n        <span class=\"na\">onClick<\/span><span class=\"p\">=<\/span><span class=\"si\">{<\/span><span class=\"p\">()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n\n          <span class=\"kd\">const<\/span> <span class=\"nx\">todo<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span> <span class=\"na\">id<\/span><span class=\"p\">:<\/span> <span class=\"nb\">Math<\/span><span class=\"p\">.<\/span><span class=\"nx\">random<\/span><span class=\"p\">(),<\/span> <span class=\"na\">name<\/span><span class=\"p\">:<\/span> <span class=\"nx\">name<\/span> <span class=\"p\">};<\/span>\n\n          <span class=\"nx\">dispatch<\/span><span class=\"p\">(<\/span><span class=\"nx\">addTodoAction<\/span><span class=\"p\">(<\/span><span class=\"nx\">todo<\/span><span class=\"p\">));<\/span>\n\n          <span class=\"nx\">setName<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"\"<\/span><span class=\"p\">);<\/span>\n        <span class=\"p\">}<\/span><span class=\"si\">}<\/span>\n      <span class=\"p\">&gt;<\/span>\n        Submit\n      <span class=\"p\">&lt;\/<\/span><span class=\"nt\">button<\/span><span class=\"p\">&gt;<\/span>\n\n      <span class=\"si\">{<\/span><span class=\"nx\">todoData<\/span><span class=\"p\">?.<\/span><span class=\"nx\">todos<\/span><span class=\"p\">?.<\/span><span class=\"nx\">map<\/span><span class=\"p\">((<\/span><span class=\"nx\">item<\/span><span class=\"p\">,<\/span> <span class=\"nx\">key<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n        <span class=\"k\">return<\/span> <span class=\"p\">(<\/span>\n          <span class=\"p\">&lt;<\/span><span class=\"nt\">div<\/span> <span class=\"na\">key<\/span><span class=\"p\">=<\/span><span class=\"si\">{<\/span><span class=\"nx\">item<\/span><span class=\"p\">?.<\/span><span class=\"nx\">id<\/span><span class=\"si\">}<\/span><span class=\"p\">&gt;<\/span>\n            <span class=\"si\">{<\/span><span class=\"nx\">key<\/span> <span class=\"o\">+<\/span> <span class=\"mi\">1<\/span><span class=\"si\">}<\/span> . <span class=\"si\">{<\/span><span class=\"nx\">item<\/span><span class=\"p\">?.<\/span><span class=\"nx\">name<\/span><span class=\"si\">}{<\/span><span class=\"dl\">\"<\/span><span class=\"s2\"> <\/span><span class=\"dl\">\"<\/span><span class=\"si\">}<\/span>\n            <span class=\"p\">&lt;<\/span><span class=\"nt\">div<\/span>\n              <span class=\"na\">onClick<\/span><span class=\"p\">=<\/span><span class=\"si\">{<\/span><span class=\"p\">()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n                <span class=\"nx\">dispatch<\/span><span class=\"p\">(<\/span><span class=\"nx\">deleteTodoAction<\/span><span class=\"p\">(<\/span><span class=\"nx\">item<\/span><span class=\"p\">?.<\/span><span class=\"nx\">id<\/span><span class=\"p\">));<\/span>\n              <span class=\"p\">}<\/span><span class=\"si\">}<\/span>\n            <span class=\"p\">&gt;<\/span>\n              Delete\n            <span class=\"p\">&lt;\/<\/span><span class=\"nt\">div<\/span><span class=\"p\">&gt;<\/span>\n          <span class=\"p\">&lt;\/<\/span><span class=\"nt\">div<\/span><span class=\"p\">&gt;<\/span>\n        <span class=\"p\">);<\/span>\n      <span class=\"p\">})<\/span><span class=\"si\">}<\/span>\n\n    <span class=\"p\">&lt;\/<\/span><span class=\"nt\">div<\/span><span class=\"p\">&gt;<\/span>\n  <span class=\"p\">);<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"k\">export<\/span> <span class=\"k\">default<\/span> <span class=\"nx\">App<\/span><span class=\"p\">;<\/span>\n\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0628\u0647 \u0627\u06cc\u0646 \u062a\u0631\u062a\u06cc\u0628 \u0633\u0627\u062e\u062a\u0627\u0631 \u067e\u0648\u0634\u0647 redux \u062e\u0648\u062f \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u06cc\u062f \u0648 \u0633\u067e\u0633 \u06a9\u0627\u0647\u0634 \u062f\u0647\u0646\u062f\u0647 \u0647\u0627\u060c \u0627\u0642\u062f\u0627\u0645\u0627\u062a\u060c \u0627\u0646\u0648\u0627\u0639 \u062e\u0648\u062f \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u06cc\u062f \u0648 \u0627\u0632 \u0642\u0644\u0627\u0628 \u0647\u0627\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc \u0628\u0631\u0627\u06cc \u062a\u063a\u06cc\u06cc\u0631 \u0648 \u0630\u062e\u06cc\u0631\u0647 \u062f\u0627\u062f\u0647 \u0647\u0627 \u062f\u0631 \u0633\u0637\u062d \u062c\u0647\u0627\u0646\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u0645\u0646 \u0627\u062d\u0633\u0627\u0633 \u0645\u06cc\u200c\u06a9\u0646\u0645 \u0628\u0627 \u062e\u0648\u0627\u0646\u062f\u0646 \u0627\u06cc\u0646 \u0648\u0628\u0644\u0627\u06af\u060c \u062f\u0631\u06a9 \u0647\u0645\u0647 \u0645\u0641\u0627\u0647\u06cc\u0645 \u062f\u0634\u0648\u0627\u0631 \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f\u060c \u0632\u06cc\u0631\u0627 \u0686\u0646\u062f\u06cc\u0646 \u0647\u0641\u062a\u0647 \u0637\u0648\u0644 \u06a9\u0634\u06cc\u062f \u062a\u0627 \u062d\u062a\u06cc \u0648\u0642\u062a\u06cc \u0634\u0631\u0648\u0639 \u0628\u0647 \u06a9\u0627\u0631 \u06a9\u0631\u062f\u0645 \u0645\u062a\u0648\u062c\u0647 \u0634\u062f\u0645 redux \u0686\u06cc\u0633\u062a. <\/p>\n<p>\u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646\u060c \u0628\u0631\u0627\u06cc \u062f\u0627\u0646\u0633\u062a\u0646 \u0645\u0641\u0627\u0647\u06cc\u0645 \u0639\u0645\u06cc\u0642\u200c\u062a\u0631 \u062f\u0631 \u0645\u0648\u0631\u062f \u0627\u062f\u063a\u0627\u0645 Redux \u0628\u0627 React JS \u0648 Next JS\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u062f\u0648\u0631\u0647 \u0645\u0646 \u062f\u0631 Udemy \u0631\u0627 \u0628\u0627 \u0644\u06cc\u0646\u06a9 \u0632\u06cc\u0631 \u0645\u0634\u0627\u0647\u062f\u0647 \u06a9\u0646\u06cc\u062f.  \u0645\u0646 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0633\u062a\u0645 \u0647\u0631 \u0645\u0631\u062d\u0644\u0647 \u0631\u0627 \u0628\u0627 \u062a\u062c\u0633\u0645 \u0646\u062d\u0648\u0647 \u0639\u0645\u0644\u06a9\u0631\u062f \u06a9\u0627\u0647\u0634\u200c\u062f\u0647\u0646\u062f\u0647\u200c\u0647\u0627 \u0628\u0627 \u0627\u0642\u062f\u0627\u0645\u0627\u062a \u0628\u0631\u0627\u06cc \u062a\u063a\u06cc\u06cc\u0631 \u0648\u0636\u0639\u06cc\u062a \u062c\u0647\u0627\u0646\u06cc \u0648 \u0627\u06cc\u0646\u06a9\u0647 \u0686\u06af\u0648\u0646\u0647 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f API\u0647\u0627\u06cc Backend \u0631\u0627 \u0628\u0627 useEffect \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u06a9\u0646\u06cc\u062f \u0648 \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0631\u0627 \u062f\u0631 \u062d\u0627\u0644\u062a \u062c\u0647\u0627\u0646\u06cc \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0646\u06cc\u062f\u060c \u0645\u0648\u0631\u062f \u0628\u062d\u062b \u0642\u0631\u0627\u0631 \u0645\u06cc\u200c\u062f\u0627\u062f\u0645.  \u062f\u0631 \u067e\u0627\u06cc\u0627\u0646 \u062f\u0648\u0631\u0647 \u0634\u0645\u0627 \u062f\u0631\u06a9 \u06a9\u0627\u0645\u0644\u06cc \u062f\u0631 \u0645\u0648\u0631\u062f \u0646\u062d\u0648\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 redux \u0628\u0631\u0627\u06cc \u067e\u0631\u0648\u0698\u0647 \u0647\u0627\u06cc \u062e\u0648\u062f \u062e\u0648\u0627\u0647\u06cc\u062f \u062f\u0627\u0634\u062a.<\/p>\n<p>https:\/\/www.udemi.com\/course\/react-next-js-redux-state-management-for-absolute-beginners\/?couponCode=84F8B74F45ED36FE44A1<\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u062f\u0631 \u0627\u06cc\u0646 \u067e\u0633\u062a \u0628\u0647 \u0646\u062d\u0648\u0647 \u0627\u062f\u063a\u0627\u0645 redux \u0628\u0627 React JS \u06cc\u0627 Next JS \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u062d\u0627\u0644\u062a \u062c\u0647\u0627\u0646\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0648\u0628 \u062e\u0648\u062f \u062e\u0648\u0627\u0647\u06cc\u0645 \u067e\u0631\u062f\u0627\u062e\u062a. \u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0645\u0627 \u0631\u0634\u062f \u0645\u06cc \u06a9\u0646\u062f\u060c \u0645\u0627 \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u0645 \u0648\u0636\u0639\u06cc\u062a \u0631\u0627 \u062f\u0631 \u0633\u0631\u0627\u0633\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f \u0628\u0647 \u0627\u0634\u062a\u0631\u0627\u06a9 \u0628\u06af\u0630\u0627\u0631\u06cc\u0645. \u0628\u0631\u0627\u06cc \u0627\u0646\u062c\u0627\u0645 \u0627\u06cc\u0646 \u06a9\u0627\u0631\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u0645 \u0627\u0632 \u06cc\u06a9 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u0645\u062f\u06cc\u0631\u06cc\u062a \u062d\u0627\u0644\u062a \u0628\u0647 \u0646\u0627\u0645 redux \u0628\u0631\u0627\u06cc &hellip;<\/p>\n","protected":false},"author":2,"featured_media":28228,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"","fifu_image_alt":"","footnotes":""},"categories":[339],"tags":[],"class_list":["post-28226","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev"],"_links":{"self":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/28226","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/comments?post=28226"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/28226\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media\/28228"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=28226"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=28226"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=28226"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}