Redux: рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдХреЛрдб рддреНрд░реБрдЯрд┐ "combineReducers" рдХреЗ рд▓рд┐рдП API рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рд╕рдордЭрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ?

рдХреЛ рдирд┐рд░реНрдорд┐рдд 14 рдЕрдкреНрд░реИрд▓ 2016  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: reduxjs/redux

рд╕реНрдЯреЛрд░ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд╕рдордп "combineReducers" рдХреЗ API рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, "reducer" рдХреЛ " app.js " ( let store = createStore(reducer) ) рдлрд╝рд╛рдЗрд▓ рдореЗрдВ createStore рдкрд░ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╣рд╛рд▓рд╛рдВрдХрд┐ " reducers/index.js " рдореЗрдВ, рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдирд╛рдо "combineReducers" рд╣реИ рди рдХрд┐ "reducer" ( export default combineReducers({..}) )ред

рддреЛ рд╕реНрдЯреЛрд░ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдкрд░ рдкреИрд░рд╛рдореАрдЯрд░ рдкрд╛рд╕ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП "combineReducers" (рдЙрджрд╛рд╣рд░рдг: let store = createStore(combineReducers )) ??

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореИрдВ рдирд╣реАрдВ рдХрд╣реВрдВрдЧрд╛ред рдпрджрд┐ рдЖрдк рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрддреЗ рд╣реИрдВ, рддреЛ Redux рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рд░реЗрдбреНрдпреВрд╕рд░ рдлрд╝рдВрдХреНрд╢рди рд╣реЛрддрд╛ рд╣реИред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдЙрджрд╛рд╣рд░рдг рдЙрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП combineReducers рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдпрд╣ рдПрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рд╡рд░рдг рд╣реИред рдЬрд╣рд╛рдВ рддрдХ app.js рдХрд╛ рд╕рдВрдмрдВрдз рд╣реИ, рдпрд╣ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдпрд╛ рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рдХрд░рддрд╛ рдХрд┐ рдЙрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрдВрджрд░ рдХреНрдпрд╛ рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рд╣рдордиреЗ рдЗрд╕реЗ рдХреИрд╕реЗ рдмрдирд╛рдпрд╛, рдпрд╛ рдпрд╣ рдХреНрдпрд╛ рдХрд░ рд░рд╣рд╛ рд╣реИред

рд╕рд╛рде рд╣реА, рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЬрдм reducers/index.js export default combineReducers({}) , рддреЛ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ _creating_ рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдирд╛рдо "combineReducers" рд╣реИред рдпрд╣ рдХрд╣ рд░рд╣рд╛ рд╣реИ "рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд▓реЗрдВ, рдЬреЛ рднреА рд╣реЛ, рдФрд░ рдЗрд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдирд┐рд░реНрдпрд╛рдд рдХрд░реЗрдВред" рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ, рдЙрд╕ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рдХреЛрдИ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЪрд░ рдирд╛рдо рднреА рдирд╣реАрдВ рдЬреБрдбрд╝рд╛ рд╣реЛрддрд╛ рд╣реИред

рдЕрдВрдд рдореЗрдВ, рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЬрдм рдЖрдк export default , рддреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдирд┐рд░реНрдпрд╛рдд рдЬреЛ рднреА рдлрд╝рд╛рдЗрд▓ рдЖрдпрд╛рдд рдХрд░рддрд╛ рд╣реИ, рд╡рд╣ рд╕реНрдерд╛рдиреАрдп рдЪрд░ рдХреЛ рдХреЛрдИ рднреА рдирд╛рдо рджреЗ рд╕рдХрддрд╛ рд╣реИ, рдареАрдХ рдЙрд╕реА рддрд░рд╣ рдЬреИрд╕реЗ рдлрд╝рдВрдХреНрд╢рди рдкрд░рд┐рднрд╛рд╖рд╛ рдХрд┐рд╕реА рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдирд╛рдо рджреЗ рд╕рдХрддреА рд╣реИ, рдЬреЛ рднреА рдЪрд░ рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдХреЙрд▓ рд╕рд╛рдЗрдЯред рдЙрджрд╛рд╣рд░рдг:

function someFunction(a, fred, randomVariableName) {}

const firstVariable = 1;
const theMeaningOfLife = 42;
const aTotallyUselessName = "Whatever";

someFunction(firstVariable, theMeaningOfLife, aTotallyUselessName);

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдореИрдВ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдмрд╛рд╣рд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЪрд░ рдирд╛рдо рдХреИрд╕реЗ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрдВрджрд░ рдкреИрд░рд╛рдореАрдЯрд░ рдирд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рдХреЛрдИ рдкрддреНрд░рд╛рдЪрд╛рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВред

рдЗрд╕реА рддрд░рд╣, рдирд┐рд░реНрдпрд╛рдд рдХрд░рддреЗ рд╕рдордп:

// fileA.js
export default const aThing = 42;

// fileB.js
import iCanGiveThisAnyNameIWant from "fileA";

рд╕рднреА 3 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдореИрдВ рдирд╣реАрдВ рдХрд╣реВрдВрдЧрд╛ред рдпрджрд┐ рдЖрдк рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрддреЗ рд╣реИрдВ, рддреЛ Redux рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рд░реЗрдбреНрдпреВрд╕рд░ рдлрд╝рдВрдХреНрд╢рди рд╣реЛрддрд╛ рд╣реИред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдЙрджрд╛рд╣рд░рдг рдЙрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП combineReducers рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдпрд╣ рдПрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рд╡рд░рдг рд╣реИред рдЬрд╣рд╛рдВ рддрдХ app.js рдХрд╛ рд╕рдВрдмрдВрдз рд╣реИ, рдпрд╣ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдпрд╛ рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рдХрд░рддрд╛ рдХрд┐ рдЙрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрдВрджрд░ рдХреНрдпрд╛ рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рд╣рдордиреЗ рдЗрд╕реЗ рдХреИрд╕реЗ рдмрдирд╛рдпрд╛, рдпрд╛ рдпрд╣ рдХреНрдпрд╛ рдХрд░ рд░рд╣рд╛ рд╣реИред

рд╕рд╛рде рд╣реА, рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЬрдм reducers/index.js export default combineReducers({}) , рддреЛ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ _creating_ рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдирд╛рдо "combineReducers" рд╣реИред рдпрд╣ рдХрд╣ рд░рд╣рд╛ рд╣реИ "рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд▓реЗрдВ, рдЬреЛ рднреА рд╣реЛ, рдФрд░ рдЗрд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдирд┐рд░реНрдпрд╛рдд рдХрд░реЗрдВред" рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ, рдЙрд╕ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рдХреЛрдИ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЪрд░ рдирд╛рдо рднреА рдирд╣реАрдВ рдЬреБрдбрд╝рд╛ рд╣реЛрддрд╛ рд╣реИред

рдЕрдВрдд рдореЗрдВ, рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЬрдм рдЖрдк export default , рддреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдирд┐рд░реНрдпрд╛рдд рдЬреЛ рднреА рдлрд╝рд╛рдЗрд▓ рдЖрдпрд╛рдд рдХрд░рддрд╛ рд╣реИ, рд╡рд╣ рд╕реНрдерд╛рдиреАрдп рдЪрд░ рдХреЛ рдХреЛрдИ рднреА рдирд╛рдо рджреЗ рд╕рдХрддрд╛ рд╣реИ, рдареАрдХ рдЙрд╕реА рддрд░рд╣ рдЬреИрд╕реЗ рдлрд╝рдВрдХреНрд╢рди рдкрд░рд┐рднрд╛рд╖рд╛ рдХрд┐рд╕реА рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдирд╛рдо рджреЗ рд╕рдХрддреА рд╣реИ, рдЬреЛ рднреА рдЪрд░ рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдХреЙрд▓ рд╕рд╛рдЗрдЯред рдЙрджрд╛рд╣рд░рдг:

function someFunction(a, fred, randomVariableName) {}

const firstVariable = 1;
const theMeaningOfLife = 42;
const aTotallyUselessName = "Whatever";

someFunction(firstVariable, theMeaningOfLife, aTotallyUselessName);

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдореИрдВ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдмрд╛рд╣рд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЪрд░ рдирд╛рдо рдХреИрд╕реЗ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрдВрджрд░ рдкреИрд░рд╛рдореАрдЯрд░ рдирд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рдХреЛрдИ рдкрддреНрд░рд╛рдЪрд╛рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВред

рдЗрд╕реА рддрд░рд╣, рдирд┐рд░реНрдпрд╛рдд рдХрд░рддреЗ рд╕рдордп:

// fileA.js
export default const aThing = 42;

// fileB.js
import iCanGiveThisAnyNameIWant from "fileA";

@markerikson рдЗрди рдорд╣рд╛рди рдЙрддреНрддрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж @markeriksonред

рдореИрдВ Redux рдХреЛ JQuery рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░рдирд╛ рд╕реАрдЦ рд░рд╣рд╛ рд╣реВрдБ, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рдЬреНрдЮрд╛рди рдХреЛ рдШрдЯрд╛рдХрд░ред рдЖрдкрдХрд╛ рдЙрддреНрддрд░ рдЕрдм рдореБрдЭреЗ рд░рд┐рдПрдХреНрдЯ рдХреЛрдб рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдмреЗрд╣рддрд░ рдврдВрдЧ рд╕реЗ рд╕рдордЭрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

benoneal picture benoneal  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

elado picture elado  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ramakay picture ramakay  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

wmertens picture wmertens  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

dmitry-zaets picture dmitry-zaets  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ