Redux: рдкреНрд░рд╢реНрди: Redux рдХреЗ рд╕реНрдЯреЛрд░ рдФрд░ рд░рд┐рдПрдХреНрдЯ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рдмреАрдЪ рдЪрдпрди рдХреИрд╕реЗ рдХрд░реЗрдВ?

рдХреЛ рдирд┐рд░реНрдорд┐рдд 27 рдЬрдире░ 2016  ┬╖  26рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: reduxjs/redux

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

рдПрдкрд░реНрдореЗрд░рд▓ рд╕реНрдЯреЗрдЯ рдХреЗ рд▓рд┐рдП рд░рд┐рдПрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдЬреЛ рд╡рд┐рд╢реНрд╡ рд╕реНрддрд░ рдкрд░ рдРрдк рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ рдФрд░ рдЬрдЯрд┐рд▓ рддрд░реАрдХреЛрдВ рд╕реЗ рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреБрдЫ UI рддрддреНрд╡ рдореЗрдВ рдПрдХ рдЯреЙрдЧрд▓, рдПрдХ рдлреЙрд░реНрдо рдЗрдирдкреБрдЯ рд╕реНрдерд┐рддрд┐ред рд░рд╛рдЬреНрдп рдХреЗ рд▓рд┐рдП Redux рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдЬреЛ рд╡рд┐рд╢реНрд╡ рд╕реНрддрд░ рдкрд░ рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИ рдпрд╛ рдЬрдЯрд┐рд▓ рддрд░реАрдХреЛрдВ рд╕реЗ рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреИрд╢реНрдб рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛, рдпрд╛ рдкреЛрд╕реНрдЯ рдбреНрд░рд╛рдлреНрдЯред

рдХрднреА-рдХрднреА рдЖрдк Redux рд░рд╛рдЬреНрдп рд╕реЗ React рд░рд╛рдЬреНрдп рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ (рдЬрдм Redux рдореЗрдВ рдХреБрдЫ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдирд╛ рдЕрдЬреАрдм рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ) рдпрд╛ рдЕрдиреНрдп рддрд░реАрдХреЗ рд╕реЗ (рдЬрдм рдЕрдзрд┐рдХ рдШрдЯрдХреЛрдВ рдХреЛ рдХреБрдЫ рд░рд╛рдЬреНрдп рддрдХ рдкрд╣реБрдВрдЪ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬреЛ рд╕реНрдерд╛рдиреАрдп рд╣реБрдЖ рдХрд░рддреЗ рдереЗ)ред

рдЕрдВрдЧреВрдареЗ рдХрд╛ рдирд┐рдпрдо рд╣реИ: рдЬреЛ рднреА рдХрдо рдЕрдЬреАрдм рд╣реИ рдЙрд╕реЗ рдХрд░реЛред

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

рдПрдкрд░реНрдореЗрд░рд▓ рд╕реНрдЯреЗрдЯ рдХреЗ рд▓рд┐рдП рд░рд┐рдПрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдЬреЛ рд╡рд┐рд╢реНрд╡ рд╕реНрддрд░ рдкрд░ рдРрдк рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ рдФрд░ рдЬрдЯрд┐рд▓ рддрд░реАрдХреЛрдВ рд╕реЗ рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреБрдЫ UI рддрддреНрд╡ рдореЗрдВ рдПрдХ рдЯреЙрдЧрд▓, рдПрдХ рдлреЙрд░реНрдо рдЗрдирдкреБрдЯ рд╕реНрдерд┐рддрд┐ред рд░рд╛рдЬреНрдп рдХреЗ рд▓рд┐рдП Redux рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдЬреЛ рд╡рд┐рд╢реНрд╡ рд╕реНрддрд░ рдкрд░ рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИ рдпрд╛ рдЬрдЯрд┐рд▓ рддрд░реАрдХреЛрдВ рд╕реЗ рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреИрд╢реНрдб рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛, рдпрд╛ рдкреЛрд╕реНрдЯ рдбреНрд░рд╛рдлреНрдЯред

рдХрднреА-рдХрднреА рдЖрдк Redux рд░рд╛рдЬреНрдп рд╕реЗ React рд░рд╛рдЬреНрдп рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ (рдЬрдм Redux рдореЗрдВ рдХреБрдЫ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдирд╛ рдЕрдЬреАрдм рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ) рдпрд╛ рдЕрдиреНрдп рддрд░реАрдХреЗ рд╕реЗ (рдЬрдм рдЕрдзрд┐рдХ рдШрдЯрдХреЛрдВ рдХреЛ рдХреБрдЫ рд░рд╛рдЬреНрдп рддрдХ рдкрд╣реБрдВрдЪ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬреЛ рд╕реНрдерд╛рдиреАрдп рд╣реБрдЖ рдХрд░рддреЗ рдереЗ)ред

рдЕрдВрдЧреВрдареЗ рдХрд╛ рдирд┐рдпрдо рд╣реИ: рдЬреЛ рднреА рдХрдо рдЕрдЬреАрдм рд╣реИ рдЙрд╕реЗ рдХрд░реЛред

рдиреЗрдЯрд╡рд░реНрдХ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓рд╛рдП рдЧрдП рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП, рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрд╢рд╛ рд╕реНрдЯреЛрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ (рдпрджрд┐ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдВрддрд┐рдо рд▓рдХреНрд╖реНрдп рд╣реИ), рдпрд╛ рдЖрдк рдкреБрдирд░реНрдЬрд▓реАрдХрд░рдг рдирд╣реАрдВ рдХрд░ рдкрд╛рдПрдВрдЧреЗред

рдЙрди рд░рд╛рдЬреНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рджреЛ рдпрд╛ рджреЛ рд╕реЗ рдЕрдзрд┐рдХ рдХрдВрдЯреЗрдирд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕реБрдиреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рджреБрдХрд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рднреА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП?

рдореИрдВ рдкрдВрдЪрд╛рдВрдЧ рдмрдирд╛рдо рд╕реНрдерд┐рд░ рдХреЗ рднреЗрдж рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рддреАрди рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдореЗрдВ рд╕реЛрдЪрддрд╛ рд╣реВрдВред рдПрдХ рдпреВрдЖрдИ рд░рд╛рдЬреНрдп рд╣реИ рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд╣ рдмрд╛рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдореИрдВ рднреА рдЕрд▓реНрдкрдХрд╛рд▓рд┐рдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрддрд╛ рд╣реВрдВред рдПрдХ рдЕрдиреНрдп рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрдерд┐рддрд┐ рд╣реИ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рд▓рдЧрд╛рддрд╛рд░ рдХреЛрд░ рд╣реИред рд▓реЗрдХрд┐рди рдПрдХ рддреАрд╕рд░рд╛, рдЬреЛ рдмреАрдЪ рдореЗрдВ рдмреИрдарддрд╛ рд╣реИ, рд░реВрдЯрд┐рдВрдЧ рд╕реНрдЯреЗрдЯ рд╣реИ ред рдореИрдВ "рд░реВрдЯрд┐рдВрдЧ" рд╢рдмреНрдж рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдЪрд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕реЗ "рджреГрд╢реНрдп рдЪрдпрди" рд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рд╕рд╛рд░ рдХрд░рддрд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдбреЗрд╕реНрдХрдЯреЙрдк, рд╡реЗрдм рдФрд░ рдореЛрдмрд╛рдЗрд▓ рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рддрд╛ рд╣реИред

рдЕрдм рдЖрдк рддрд░реНрдХ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдпреВрдЖрдИ рд░рд╛рдЬреНрдп рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рддрдп рдХрд░ рд░рд╣рд╛ рд╣реИ рдХрд┐ рд▓реЛрдЧ рдХреНрдпрд╛ рджреЗрдЦрддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЯреИрдм рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рддрд░рд╣)ред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рджреЛ рднреЗрдж рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВред рдкрд╣рд▓рд╛ рдпрд╣ рд╣реИ рдХрд┐ рд░рд╛рдЬреНрдп рдХреНрд░рдордмрджреНрдз рд╣реИ (рдпрд╛рдиреА, рдПрдХ URL рдХреЗ рд░реВрдк рдореЗрдВ) рдФрд░ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреЛ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдЪреАрдЬреЛрдВ рдХреЛ рд░реВрдЯ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрджрд┐ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рд▓реЛрдЧ рдЙрд╕ рд╡рд┐рд╢реЗрд╖ рдпреВрдЖрдИ рд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП "рдЧрд╣рд░реЗ рд▓рд┐рдВрдХ" рдХреЗ рд▓рд┐рдП рд╕рдХреНрд╖рдо рд╣реЛрдВ ред рджреВрд╕рд░рд╛ рдпрд╣ рд╣реИ рдХрд┐ рдХрдИ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдорд╛рд░реНрдЧ рд╕реНрдерд┐рддрд┐ рдпрд╛ рдорд╛рд░реНрдЧ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрддрд╛ рд╣реИ (рдпрд╛рдиреА, рджреЗрдЦреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдбреЗрдЯрд╛ рдХреЛ рд▓реЛрдб рдХрд░рдирд╛)ред рдмреЗрд╢рдХ, рдпреВрдЖрдИ рдореЗрдВ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдПрдХ рд╣реА рдХрд╛рдо рдХрд░рддреА рд╣реИред рд▓реЗрдХрд┐рди рдореИрдВ рдЬреЛ рднреЗрдж рдХрд░рддрд╛ рд╣реВрдВ, рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдорд╛рд░реНрдЧ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдЖрд╕рдкрд╛рд╕ "рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдЬрд┐рдХ" рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рджреГрд╢реНрдп рдпрд╛ рд░реЗрдВрдбрд░ рдХреЗ рдмрд┐рдирд╛ рд░реВрдЯ рд╕реНрдЯреЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдФрд░ рдЪрд╛рд╣рд┐рдП)ред рдФрд░ рдпрд╣ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рджреГрд╢реНрдп рдФрд░ рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЛ рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдЗрд╕реЗ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реНрдерд┐рддрд┐, IMHO рдмрдирд╛рддрд╛ рд╣реИред

рдпрд╣ рд░рд╛рдЬреНрдп рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП Redux рдмрдирд╛рдо рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рдкреНрд░рд╢реНрди рд╕реЗ рдХреИрд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ? рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд░рд╛рдЬреНрдп Redux рдХрд╛ рдбреЛрдореЗрди рд╣реИ рдФрд░ UI рд░рд╛рдЬреНрдп рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдбреЛрдореЗрди рд╣реИред рд▓реЗрдХрд┐рди рд░рд╛рдЙрдЯрд┐рдВрдЧ рд╕реНрдЯреЗрдЯ рдХреЛ (рдореЗрд░реА рд░рд╛рдп рдореЗрдВ) Redux рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рднрд▓реЗ рд╣реА рдЗрд╕реЗ рдпреВрдЖрдИ рд░рд╛рдЬреНрдп рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпреЛрдВ рдХреЗ рдЕрдзрд┐рдХ рдЪрд░реНрдЪрд╛ рдХреЗ рд▓рд┐рдП рдПрдореНрдмреЗрдбреЗрдб рд▓рд┐рдВрдХ рджреЗрдЦреЗрдВ)ред

рд╕реНрдкрд╖реНрдЯ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, @gaearon рдХреЗ рдЖрд╕-рдкрд╛рд╕ рдШреВрдо рд░рд╣реА рдЪреАрдЬреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЯрд┐рдкреНрдкрдгреА рдЕрднреА рднреА рд▓рд╛рдЧреВ рд╣реЛрддреА рд╣реИред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЗрди рд╡рд┐рднрд┐рдиреНрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЕрдВрддрд░ рдХрд░рдирд╛ рдЙрдкрдпреЛрдЧреА рд▓рдЧрддрд╛ рд╣реИред

рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд░рд╛рдЬреНрдп Redux рдХрд╛ рдбреЛрдореЗрди рд╣реИ рдФрд░ UI рд░рд╛рдЬреНрдп рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдбреЛрдореЗрди рд╣реИред

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдореИрдВ рдпрд╣ рджрд╛рд╡рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд░рд┐рдПрдХреНрдЯ рдореЗрдВ рдХреБрдЫ рдРрдк рд╕реНрдЯреЗрдЯ рдФрд░ рд░реЗрдбрдПрдХреНрд╕ рдореЗрдВ рдХреБрдЫ рдпреВрдЖрдИ рд╕реНрдЯреЗрдЯ рд░рдЦрдирд╛ рджреЛрдиреЛрдВ рдареАрдХ рд╣реИред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдбреЛрдореЗрди рджреНрд╡рд╛рд░рд╛ рдЕрд▓рдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдореИрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрддрд╛ рд╣реВрдВ, рдпрджрд┐ рдЖрдк Redux рдХреЗ рд╕рд╛рде рдПрдХ рдРрдк рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ рдПрдХрд▓ рд░рд╛рдЬреНрдп рдХреЗ рдкреЗрдбрд╝ рдХреЛ рдЧрд▓реЗ рд▓рдЧрд╛рдУред рд╡рд╣рд╛рдБ рднреА UI рд╕реНрдерд┐рддрд┐ рд░рдЦреЗрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЕрдЧрд░ рдпрд╣ рдердХрд╛рдК рдФрд░ рдирд┐рд░рд╛рд╢рд╛рдЬрдирдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдШрдЯрдХреЛрдВ рдХреЛ рд░рд╛рдЬреНрдп рдореЗрдВ рд░рдЦрдиреЗ рд╕реЗ рдбрд░реЛ рдорддред рдореЗрд░рд╛ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ рдПрдХрд▓ рд░рд╛рдЬреНрдп рдХреЗ рдкреЗрдбрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдЬрдм рддрдХ рдХрд┐ рдпрд╣ рдЕрдЬреАрдм рди рд╣реЛ, рдФрд░ рдХреЗрд╡рд▓ рдпрд╣ рддрдм рдХрд░реЗрдВ рдЬрдм рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рдЪреАрдЬреЛрдВ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рддрд╛ рд╣реИ рдмрдЬрд╛рдп рдЙрдиреНрд╣реЗрдВ рдЙрд▓рдЭрд╛рдПред рдпрд╣реА рдПрдХрдорд╛рддреНрд░ рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢ рд╣реИред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ @gaearon рдХреЗ рдореБрдВрд╣ рдореЗрдВ рд╢рдмреНрджреЛрдВ рдХреЛ рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдерд╛, рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдХрд░реЗрдВред

рджреВрд╕рд░рд╛, рдореИрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ @gaearon рд╕реЗ рд╕рд╣рдордд рд╣реВрдВред рдореИрдВ рдПрдХрд▓ рд░рд╛рдЬреНрдп рд╡реГрдХреНрд╖ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдореЗрдВ рднреА рджреГрдврд╝рддрд╛ рд╕реЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВред рдЬрдм рдореИрдВрдиреЗ UI рд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХреА рдереА, рддреЛ рдореЗрд░реЗ рджрд┐рдорд╛рдЧ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдорд╛рдореВрд▓реА рдЪреАрдЬреЗрдВ рдереАрдВ (рдЬреИрд╕реЗ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдЯреИрдм рдХреНрдпрд╛ рдЪреБрдирд╛ рдЧрдпрд╛ рд╣реИ) рдЬрд╣рд╛рдВ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрд╡реЗрджрди рд░рд╛рдЬреНрдп рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рдмрд┐рд▓реНрдХреБрд▓ @gaearon рдкрд░ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рд╣реИ)ред

рддреЛ рдореИрдВ рдЕрдкрдиреА рд╕реНрдерд┐рддрд┐ рд╕реНрдкрд╖реНрдЯ рдХрд░ рджреВрдВред рдореИрдВ рдЗрд╕ рдмрд╛рдд рд╕реЗ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ рдорд╛рд░реНрдЧ рдХреА рд╕реНрдерд┐рддрд┐ рд╕рд╣рд┐рдд Redux рдореЗрдВ рдмрд╣реБрдд рдХреБрдЫ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ Redux рдФрд░ TypeScript рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ TodoMVC рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдХрд┐рдпрд╛ рд╣реИред рдореИрдВрдиреЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдорд╛рд░реНрдЧ рд╕реНрдерд┐рддрд┐ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдкреНрд░рддрд┐рд╖реНрдард┐рдд рдХрд┐рдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ (рдФрд░ рдЖрдк рдЗрд╕реЗ рдЙрд╕ TodoVVC рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ) рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди) рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ Redux рдореЗрдВ рд╣реИ (рдФрд░ рдЗрд╕реЗ рд░реЗрдВрдбрд░рд┐рдВрдЧ рд╕реЗ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдирд╣реАрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП) рдФрд░ рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ "UI рд╕реНрдерд┐рддрд┐" рдирд╣реАрдВ рд╣реИред

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдореИрдВ рд╢рд╛рдпрдж рд╣реА рдХрднреА рд░рд╛рдЬреНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рдореИрдВ рдкреНрд░реЙрдкреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ рджреЛрдиреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рд╣реИ рдФрд░ рдХреНрд▓реЛрдЬрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЕрдкрдиреЗ рдШрдЯрдХ рдореЗрдВ рдмрд╛рд╣рд░реА рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╣реНрд╡рд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдХреБрдЫ рдРрд╕реА рд╡рд┐рд╖рдо рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпрд╛рдВ рд╣реИрдВ рдЬрд╣рд╛рдВ рдореИрдВ рдЬреАрд╡рди рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдШрдЯрдХреЛрдВ рдореЗрдВ рд░рд╛рдЬреНрдп рдХрд╛ рдкрд░рд┐рдЪрдп рджреЗрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕рд╕реЗ рдмрдЪрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдВред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЪреАрдЬреЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░рддрд╛ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкреНрд░рд╢реНрди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡реНрдпрдХреНрддрд┐рдкрд░рдХ рдФрд░ рдЬрдЯрд┐рд▓ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЖрдЬ рдЕрдкрдиреА рдЯреАрдо рдХреЗ рд╕рд╛рде рдПрдХ рдХрдард┐рди рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛, рдкрд░реЗрд╢рд╛рди рди рд╣реЛрдВ:

  • рдЧреИрд░-рдкреБрди: рдкреНрд░рдпреЛрдЬреНрдп рдХрдВрдЯреЗрдирд░ рдХреЗ рд▓рд┐рдП, рдЬрд┐рд╕рдХрд╛ рд╕рдВрдмрдВрдз Redux рд╕реЗ рд╣реИ, рдмрд╕ рд╕рдм рдХреБрдЫ Redux рд╕реНрдЯреЛрд░ рдореЗрдВ рд░рдЦ рджрд┐рдпрд╛, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЫреЛрдЯреЗ UI рд╕реНрдерд┐рддрд┐ рдЬреИрд╕реЗ рдХрд┐ рдпрджрд┐ рдХреЛрдИ рдореЛрдбрд▓ рдЦреБрд▓рд╛ рд╣реИ, рддреЛ this.setState рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВред
  • рдкреБрди: рдкреНрд░рдпреЛрдЬреНрдп рдШрдЯрдХ рдХреЗ рд▓рд┐рдП, рдЬрд┐рд╕рдХрд╛ Redux рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рдирд╣реАрдВ рд╣реИ, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕реНрдерд┐рддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

рдФрд░ рдЕрдм рд╣рдо рдЫреЛрдЯреЗ рдпреВрдЖрдИ рд░рд╛рдЬреНрдп рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдХрдо рдердХрд╛рдК рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕рд╣рд╛рдпрдХреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

@gaearon @ lionng429 @xogeny рдЖрдк рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд╕рдХрддреЗ рд╣реИрдВ?

@inetfuture рдореИрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди (рд░рд┐рдбрдХреНрд╕) рд╕реНрдЯреЗрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рджреБрдЦреА рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдореИрдВ рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрдЯреЗрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреЛ рд╕рднреА рддрд░рд╣ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реВрдВред рдХрд╣рд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдореИрдВ рдШрдЯрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рд░рд╛рдЬреНрдп рд╣реЗрд░рдлреЗрд░ рдХреЛ рдкреНрд░рддрд┐рдкрд╛рджрди рд╕реЗ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реБрдЖ рд╣реИ (рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдкрд┐рдЫрд▓реЗ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд▓рд┐рдВрдХ рджреЗрдЦреЗрдВ)ред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рд╕рд╛рдорд╛рдиреНрдп рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП рднреА рдЬреЛ рддреБрдЪреНрдЫ рдирд╣реАрдВ рд╣реИрдВ, рдореИрдВ рд░рд╛рдЬреНрдп рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмрд╛рд╣рд░реА рдХрд░рддрд╛ рд╣реВрдВред рдореИрдВ рдЖрдо рддреМрд░ рдкрд░ рд╕рдм рдХреБрдЫ рдкреНрд░реЙрдкреНрд╕ (рд░рд╛рдЬреНрдпреЛрдВ рдФрд░ рдЬреЛрдбрд╝ рддреЛрдбрд╝ рд░рд╛рдЬреНрдп рдХреЗ рд▓рд┐рдП) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЧреБрдЬрд░рддрд╛ рд╣реВрдВред рдЗрд╕ рддрд░рд╣, рдореИрдВ рдЗрд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрдЯреЗрдЯ рдореЗрдВ рд╣реБрдХ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдЗрд╕рдХрд╛ рдПрдХ рднрд╛рдЧ рдирд┐рд╕реНрд╕рдВрджреЗрд╣ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдПрдХ рдХрд▓рд╛ рд╣реИ рдФрд░ рдЪреАрдЬреЛрдВ рдХреЛ рд╣реБрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рдФрд░ рдкреНрд░рдХрд╛рд░ рдХреА рдХрдореА рдХреЛ рдХрдо рд╕реЗ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП) combineReducers рдФрд░ connect рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИред рддреЛ рдпрд╣ рд╢рд╛рдпрдж рдПрдХ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдореИрдВ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рдЖрдк рдХреНрдпреЛрдВ рдХрд╣рддреЗ рд╣реИрдВ "рдмрд╕ рд╕рдм рдХреБрдЫ Redux рд╕реНрдЯреЛрд░ рдореЗрдВ рдбрд╛рд▓ рджрд┐рдпрд╛", рдореБрдЭреЗ рдЪрд┐рдВрддрд╛ рд╣реЛрдЧреА рдХрд┐ рдЖрдк рд░рд╛рдЬреНрдп рдХреЗ рдПрдХ рд░рд╕реЛрдИ рд╕рд┐рдВрдХ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рдПрдВрдЧреЗред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдореЗрд░реЗ рдЙрдкрдпреЛрдЧ рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрдЯреЗрдЯ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИ рдЬрд░реВрд░реА рдирд╣реАрдВ рдХрд┐ рдпрд╣ рдПрдХ рдмреБрд░реА рдмрд╛рдд рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдореБрдЭреЗ "рдХреНрдпрд╛ рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ?" рд╕рд╛рдорд╛рди рджреЗрдиреЗ рдХреЗ рдмрдЬрд╛рдп рд╕рд┐рд░реНрдл рдвреЗрд░ред

рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╡рд┐рдЪрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ: рд╕реНрдерд╛рдиреАрдп рдШрдЯрдХ рд░рд╛рдЬреНрдп рдирд┐рдпрдВрддреНрд░рд┐рдд рдЖрджрд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рддреЗрдЬреА рд╕реЗ рдЕрдкрдбреЗрдЯ рд╕рдордп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд╕рд╛рде рд╣реА рдЯреНрд░рд┐рдЧрд░ рдХреА рдЧрдИ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдХрдо рдХрд░рддреЗ рд╣реИрдВред рдЕрдкрдиреЗ рд╡рд░реНрддрдорд╛рди рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдореЗрдВ, рдореИрдВрдиреЗ рдПрдХ рдлреЙрд░реНрдо-рдПрдбрд┐рдЯрд┐рдВрдЧ HOC рдХреЛ рдПрдХ рд╕рд╛рде рд░рдЦрд╛, рдЬреЛ рд╡рд░реНрддрдорд╛рди рдЖрдЗрдЯрдо рдХреЛ рдкреНрд░реЛрдк рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдпрд╣ рдЕрдкрдиреЗ рд░рд╛рдЬреНрдп рдореЗрдВ рдмрджрд▓реЗ рд╣реБрдП рдХреНрд╖реЗрддреНрд░ рдХреЛ рд╕рд╣реЗрдЬрдХрд░ рдкреНрд░рдкрддреНрд░ рдЗрдирдкреБрдЯ рдкрд░рд┐рд╡рд░реНрддрди рдШрдЯрдирд╛рдУрдВ рдХреЛ рднреА рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИ, рдлрд┐рд░ рд╕рдВрдпреБрдХреНрдд рд╕реНрдерд╛рдиреАрдп WIP рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ "EDIT_ITEM_ATTRIBUTE" рдПрдХреНрд╢рди рдХреНрд░рд┐рдПрдЯрд░ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдпрд╣ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдлреЙрд░реНрдо рдлрд╝реАрд▓реНрдб рддреБрд░рдВрдд рдЕрдкрдбреЗрдЯ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдХреЗрд╡рд▓ рдлреЙрд░реНрдо рдХреЛ рд╣реА рд░реА-рд░реЗрдВрдбрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдФрд░ рдмрд╣реБрдд рдХрдо рдХрд╛рд░реНрд░рд╡рд╛рдЗрдпреЛрдВ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЬреИрд╕реЗ, рдЕрдЧрд░ рдореИрдВрдиреЗ рдХреБрдЫ рд╕реЗрдХрдВрдб рдХреЗ рд▓рд┐рдП 'рдП' рдХреЛ рдЖрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛, рддреЛ рдХреЗрд╡рд▓ 'AAAAAAAAAAAA' рдорд╛рди 'рдП', 'рдПрдП', рдЖрджрд┐) рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЗ рд░реВрдк рдореЗрдВ рднреЗрдЬрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЛ рдкрд░рд╡рд╛рд╣ рд╣реИ, рддреЛ рдореБрдЭреЗ https://gist.github.com/markerikson/554cab15d83fd994dfab рдкрд░ рдПрдХ Gist рдХреЗ рд░реВрдк рдореЗрдВ HOC рдорд┐рд▓рд╛ рд╣реИред

рд╡реИрд╕реЗ рднреА, рдореБрджреНрджрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдШрдЯрдХ рд░рд╛рдЬреНрдп рдФрд░ рд╕реНрдЯреЛрд░ рд░рд╛рдЬреНрдп рджреЛрдиреЛрдВ рдХреЗ рдЕрдкрдиреЗ рдЙрдкрдпреЛрдЧ рд╣реИрдВ - рдЖрдк рдмрд╕ рдЕрдкрдиреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗред

рдкреБрди: рдкреНрд░рдпреЛрдЬреНрдп рдШрдЯрдХреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ, рдпрджрд┐ рд╡реЗ рдмрдбрд╝реЗ рдФрд░ рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рдЬрдЯрд┐рд▓ рд╣реИрдВ, рддреЛ рдпрд╣ Redux рдореЗрдВ рдЙрдирдХреЗ рд░рд╛рдЬреНрдп рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рднрд╡рд┐рд╖реНрдп рдХреЗ рдкреНрд░рдорд╛рдг рд╣реЛрдВрдЧреЗ, рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдЯреНрд░реИрд╕реЗрдмрд┐рд▓рд┐рдЯреА рдФрд░ рд░реАрдкреНрд▓реЗ рдХреЗ рд▓рд┐рдПред рд▓реЗрдХрд┐рди рдЕрднреА рднреА рдХреБрдЫ рд╕рдВрджреЗрд╣ рд╣реИрдВ рдХрд┐ рдЗрд╕ рдХреЛрдб рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (рдШрдЯрдХ рдкреНрд▓рд╕ рдПрдХреНрд╢рди рдкреНрд▓рд╕ рд░рд┐рдбреНрдпреВрд╕рд░)ред

рд╣рдорд╛рд░реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рд╣рдордиреЗ рдХрдиреЗрдХреНрдЯ-рдЬреИрд╕реА рд╢реИрд▓реА рдореЗрдВ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ред https://github.com/Babo-.in/redux-state

рдореИрдВрдиреЗ рд╢рд╛рдпрдж рд╣реА рдХрднреА Redux рдореЗрдВ рд░рд╛рдЬреНрдпреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЬреАрдм рдкрд╛рдпрд╛ред рдореБрдЭреЗ рд╡рд╣ рд╢рдХреНрддрд┐ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдкрд╕рдВрдж рд╣реИ, рдЬреЛ рд╕рдбрд╝рдХ рдХреЗ рдиреАрдЪреЗ рдореИрдВ рдЗрд╕реЗ рдХрд┐рд╕реА рдЕрдиреНрдп рдШрдЯрдХ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдЕрдЧрд░ рдореБрдЭреЗ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдЬреЛ рдореЗрд░реЗ рджрд┐рдорд╛рдЧ рдореЗрдВ рдЖ рд░рд╣реА рд╣реИ, рдЬрд╣рд╛рдВ рдпрд╣ рдЕрдЬреАрдм рд╣реЛрдЧрд╛, рдлреЙрд░реНрдо рддрддреНрд╡реЛрдВ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдВрднрд╛рд▓ рд░рд╣реА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдореИрдВ рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдЬреИрд╕реЗ рдХрд┐ рд░рд┐рдбреНрдпреВрдХреНрд╕-рдлреЙрд░реНрдо ред

рдореЗрд░рд╛ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ рдПрдХрд▓ рд░рд╛рдЬреНрдп рдХреЗ рдкреЗрдбрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдЬрдм рддрдХ рдХрд┐ рдпрд╣ рдЕрдЬреАрдм рди рд╣реЛ, рдФрд░ рдХреЗрд╡рд▓ рдпрд╣ рддрдм рдХрд░реЗрдВ рдЬрдм рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рдЪреАрдЬреЛрдВ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рддрд╛ рд╣реИ рдмрдЬрд╛рдп рдЙрдиреНрд╣реЗрдВ рдЙрд▓рдЭрд╛рдПред рдпрд╣реА рдПрдХрдорд╛рддреНрд░ рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢ рд╣реИ

@gaearon рдЖрдк рдЕрдкрдиреЗ рдЕрдиреБрднрд╡реЛрдВ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рддрдп рдХрд┐рдпрд╛ рдЬрд╛рдП рдХрд┐ рдпрд╣ рдХрдм рдФрд░ рдХреИрд╕реЗ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ _awkward_? рдирд┐рд░реНрд╡рд╛рд╕рди рдХреЗ рд▓рд┐рдП, рдХреНрдпрд╛ рдЖрдк рдХреБрдЫ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд░рд┐рджреГрд╢реНрдп / рдЙрджрд╛рд╣рд░рдг рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рдлреА рдЕрдЬреАрдм рд╣реИ рдЕрдЧрд░ рдЙрдиреНрд╣реЗрдВ рдЖрд╡реЗрджрди рд░рд╛рдЬреНрдп рдкрд░рдорд╛рдгреБ рдореЗрдВ рдбрд╛рд▓ рджрд┐рдпрд╛ рдЬрд╛рдП? рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рдзрдиреНрдпрд╡рд╛рдж!

@idavollen рдореИрдВ рдПрдХ рдЬреЛрдбрд╝реА рджреЗ рд╕рдХрддрд╛ рд╣реВрдВ:

  • рдПрдХ рдбреНрд░реЙрдкрдбрд╛рдЙрди рдУрдкрди / рдХреНрд▓реЛрдЬ рд╕реНрдЯреЗрдЯ, рдЕрдиреНрдпрдерд╛ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд╕реНрдЯреЛрд░ рдореЗрдВ рд╕рднреА рдбреНрд░реЙрдкрдбрд╛рдЙрди рдШрдЯрдХреЛрдВ рдХрд╛ рдЯреНрд░реИрдХ рд░рдЦрдирд╛ рд╣реЛрдЧрд╛
  • рдЬрдм рдЖрдк <input> рдкрд░рд┐рд╡рд░реНрддрди рдХреА рдмрд╣рд╕ рдХрд░ рд░рд╣реЗ рд╣реЛрдВ, рддреЛ рдЖрдк рд░рд╛рдЬреНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рддреБрд░рдВрдд рдореВрд▓реНрдп рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдФрд░ рдЖрдк рдЕрдирд╛рд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рдкреБрди: рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рдШрдЯрдХреЛрдВ рдХреЛ рдЬреЛрдЦрд┐рдо рдореЗрдВ рдирд╣реАрдВ рдбрд╛рд▓ рд░рд╣реЗ рд╣реИрдВ) рдФрд░ рд╕реНрдЯреЛрд░ рдХреЛ рдПрдХ рд╡рд┐рд╡рд╛рджрд┐рдд рддрд░реАрдХреЗ рд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ

рдореВрд▓ рд░реВрдк рд╕реЗ рдЖрдкрдХреЛ рдЗрд╕реЗ рд░рд╛рдЬреНрдп рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдЕрдиреНрдп рдШрдЯрдХреЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рддреАрд╕рд░реА рд╕реНрдерд┐рддрд┐ рд╣реИ, рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдлреЙрд░реНрдо (рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрдВрдЯреЗрдирд░ рдШрдЯрдХ рд╣реИ рдЬреЛ рд░реЗрдВрдбрд░ рд╡рд┐рдзрд┐ рдореЗрдВ рдорд╣рдВрдЧреА рдЧрдгрдирд╛ рд╣реИ) рдЬрд┐рд╕рдореЗрдВ рдЪреЗрдХрдмреЙрдХреНрд╕ рд╕реЗ рдкрд╣рд▓реЗ рдХрдИ рд▓рд╛рдЗрдиреЗрдВ рдФрд░ рдПрдХ рд╕рдмрдорд┐рдЯ рдмрдЯрди рд╢рд╛рдорд┐рд▓ рд╣реИред рдЬрдм рд╕рдмрдорд┐рдЯ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдлреЙрд░реНрдо рдХреЛ рдЙрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдЬрдорд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд┐рдирдХреЗ рдЪреЗрдХрдмреЙрдХреНрд╕ рдЪреЗрдХ рдХрд┐рдП рдЧрдП рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╕рдмрдорд┐рдЯ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЪреЗрдХрдмреЙрдХреНрд╕ рдХреА рдХреНрд╖рдгрд┐рдХ рд╕реНрдерд┐рддрд┐ рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЯреЙрдЧрд▓ рдХрд░рддрд╛ рд╣реИ рддреЛ рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ рдФрд░ рдЗрд╕реЗ рдШрдЯрдХ рд░рд╛рдЬреНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдирд╣реАрдВ рдорд╛рдирд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЪреЗрдХрдмреЙрдХреНрд╕ рдХреЗ рдЯреЙрдЧрд▓ рдирд╣реАрдВ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ () рдХрд╣рд╛ рдЬрд╛рдирд╛ред

рд╣рдореЗрд╢рд╛ рдХреЗ рд▓рд┐рдП, рдореИрдВ рди рддреЛ рдЪреЗрдХрдмреЙрдХреНрд╕ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрдерд┐рддрд┐ рдкрд░рдорд╛рдгреБ рдореЗрдВ рд░рдЦреВрдВрдЧрд╛, рдФрд░ рди рд╣реА рд╕реНрдерд╛рдиреАрдп рдШрдЯрдХ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЕрд░реНрдерд╛рдд рдкреНрд░рдкрддреНрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдШрдЯрдХ рдХреЛ рд░реЗрдВрдбрд░ рдХреЗ рдЕрди-рдЬрд░реВрд░реА рдХреЙрд▓ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП () рдЪреЗрдХрдмреЙрдХреНрд╕ рдХреЛ рдЯреЙрдЧрд▓ рдХрд░рддреЗ рд╕рдордп, рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЙрджрд╛рд╣рд░рдг рдЪрд░ рдХреЛ рдЪреЗрдХ рдХрд┐рдП рдЧрдП рдЪреЗрдХрдмреЙрдХреНрд╕ рдХреЛ рдкрдХрдбрд╝рдирд╛ рдкрд╕рдВрдж рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдкреИрдЯрд░реНрди рдХреЗ рдЦрд┐рд▓рд╛рдл рд╣реИред

рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдБ рдХрд┐ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЗрди рд░рд╛рдЬреНрдпреЛрдВ рдХреЗ рдЪреЗрдХрдмреЙрдХреНрд╕ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рдХреНрдпрд╛ рд╣реИ?

@idavollen рдХреНрдпрд╛ рд╡реЗ рдЪреЗрдХрдмреЙрдХреНрд╕ рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рд╣реИрдВ ? рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдЖрдк рдЙрдиреНрд╣реЗрдВ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдлрд┐рд░ рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЖрдк рдШрдЯрдХ рдХреЗ рд░рд╛рдЬреНрдп рдореЗрдВ рдЪреБрдиреЗ рдЧрдП рд▓реЛрдЧреЛрдВ рдкрд░ рдирдЬрд╝рд░ рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдбреЗрдЯрд╛ рдХреЗ рдХрд┐рди рднрд╛рдЧреЛрдВ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдШрдЯрдХреЛрдВ рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ Redux рдХрд┐рддрдиреА рддреЗрдЬреА рд╕реЗ рд╣реИ? рдХреНрдпрд╛ рдореБрдЭреЗ UI рдкреНрд░реЙрдкреНрд╕ рдХреЗ рд▓рд┐рдП Redux рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдШрдЯрдирд╛ рдФрд░ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдмреАрдЪ рдХреЗ рд╕рдордп рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдордЭрджрд╛рд░ рд╣реИрдВ? рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдЬрдЯрд┐рд▓ рд╕реНрдерд┐рддрд┐ рд╣реИ рдЬрд╣рд╛рдВ рдШрдЯрдХреЛрдВ рдХреЗ рд░рд╛рдЬреНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдмрд╣реБрдд рд╕реАрдзреЗ рд╕рдВрдЪрд╛рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдХрд┐рд╕реА рднреА рдорджрдж рдХреА рдмрд╣реБрдд рд╕рд░рд╛рд╣рдирд╛ рдХреА рдЬрд╛рдПрдЧреАред

рдореЗрд░реЗ рдЕрдиреБрднрд╡ рдореЗрдВ @tiberiumaxim (рдореИрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдХреНрд╖реБрдзрд╛ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдФрд░ рд╕реНрдорд╛рд░реНрдЯ рдЯреАрд╡реА рдХреА рддрд░рд╣ рдХрдо рд╢рдХреНрддрд┐ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдХрд┐ рд░рди Redux)ред рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдХрдВрдкреЛрдиреЗрдВрдЯ рд╕реНрдЯреЗрдЯ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рдЬреНрдпрд╛рджрд╛ рдкрд░рдлреЙрд░рдореЗрдВрд╕ рд╣реЛрдЧрд╛, рд╕рд┐рд░реНрдл рдЗрд╕рд▓рд┐рдП рдХрд┐ рдбрд┐рдлрд░реЗрдВрд╕рд┐рдВрдЧ рдЬреЛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рд╡рд╣ рдПрдХ рдЫреЛрдЯреЗ рдбреЗрдЯрд╛ рд╕реЗрдЯ рдкрд░ рд╣реЛрддреА рд╣реИ рдФрд░ рдХреЛрдИ рдбрд┐рд╕реНрдкреИрдЪ рд╣реЛрдиреЗ рдХреА рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИред рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЬрд╣рд╛рдВ рдХреЗрд╡рд▓ рдШрдЯрдХ рдпрд╛ рдмрдЪреНрдЪреЛрдВ рдХреЛ рдЙрд╕ рд░рд╛рдЬреНрдп рддрдХ рдкрд╣реБрдВрдЪ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд╕реНрдерд╛рдиреАрдп рдШрдЯрдХ рд░рд╛рдЬреНрдп рдХреЗ рд╕рд╛рде рд░рд╣рдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ рдФрд░ рдпрд╣ рдЕрдХреНрд╕рд░ рдпреВрдЖрдИ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕реНрдерд┐рддрд┐ рдХреЗ рд╕рд╛рде рд╣реЛрддрд╛ рд╣реИ, рдпрджрд┐ рдЖрдкрдХреЛ рдЙрд╕ рдбреЗрдЯрд╛ рдХреЛ рдХреБрдЫ рдмрд┐рдВрджреБ рдкрд░ рд░рд┐рдбреНрдпреВрдХреНрд╕ рд╕реНрдЯреЛрд░ рдореЗрдВ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ - рдЖрдкрдХреЛ рд╕реНрдерд╛рдиреАрдп (рдШрдЯрдХ) рдмрдирд╛рдо рд╡реИрд╢реНрд╡рд┐рдХ (рд░рд┐рдбрдХреНрд╕) рд░рд╛рдЬреНрдп рдХреЗ рд╕рдВрдпреЛрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ рдФрд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдк рдЙрд╕ рдбреЗрдЯрд╛ рдХреЛ рд╕рд╣реА рд╕рдордп рдкрд░ рд░рд┐рдбреНрдпреВрд╕ рд╕реНрдЯреЛрд░ рдкрд░ рдмрдирд╛рдП рд░рдЦреЗрдВ - рдпрд╛рдиреА рдЬрдм рдХреЛрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреГрд╖реНрда рд╕реЗ рджреВрд░ рдЬрд╛рддрд╛ рд╣реИ - рдпрд╛ рдЙрд╕ рдкреНрд░рднрд╛рд╡ рдХреЗ рд▓рд┐рдП рдХреБрдЫред рд╢рд╛рдпрдж рдЕрдЧрд░ рдЖрдк рдЕрдкрдиреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдорд╛рдорд▓реЗ рдкрд░ рдХреБрдЫ рдФрд░ рдкреНрд░рдХрд╛рд╢ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ - рдореИрдВ рдЖрдкрдХреЛ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рдЬрд╛рдирдХрд╛рд░реА рджреЗ рд╕рдХрддрд╛ рд╣реВрдВ

рдпрд╣ рддрдп рдХрд░рдирд╛ рдЖрдкрдХреЗ рд▓рд┐рдП рд╣реИ рдХрд┐ Redux рдореЗрдВ рдХреМрди рд╕рд╛ рд░рд╛рдЬреНрдп рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдПрдХ рдШрдЯрдХ рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдиреАрдп рдХреНрдпрд╛ рд░рд╣рддрд╛ рд╣реИред рдЖрдк http://redux.js.org/docs/faq/OrganizingState.html#organizing -state-only-redux-state рдФрд░ http://redux.js.org/docs/faq/Prformance рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрдврд╝рдирд╛ рдЪрд╛рд╣ рд╕рдХрддреЗ рд╣реИрдВ

@dowk рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдорд╛рдорд▓реЗ рдкрд░ рдЕрдкрдирд╛ рдЬреНрдЮрд╛рди рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдореИрдВрдиреЗ рд╡рд╣реА рд╕реЛрдЪрд╛ рд▓реЗрдХрд┐рди рдкреБрд╖реНрдЯрд┐ рдХреА рдЬрд░реВрд░рдд рд╣реИред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд▓рд┐рдВрдХ рдХреЗ рд▓рд┐рдП @markerikson рдзрдиреНрдпрд╡рд╛рдж, рдореИрдВ рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рдЙрди рдкрд░ рдПрдХ рдирдЬрд╝рд░

рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдиреЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕реНрдерд╛рдиреАрдп рдШрдЯрдХ рд░рд╛рдЬреНрдп рдХреЛ Redux рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЖрдк рдЕрдкрдиреЗ рдХрдВрдкреЛрдиреЗрдВрдЯ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ рдПрдХ рд╕реНрдЯреЛрд░ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рд╕реНрдерд╛рдиреАрдп рд╕реНрдЯреЛрд░ рдореЗрдВ рдЗрд╕ рдШрдЯрдХ рдХреА рд╕реНрдерд┐рддрд┐ рд╣реЛрдЧреА, рдФрд░ рдЗрд╕ рдШрдЯрдХ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХрд╛рд░реНрдпреЛрдВ (рдФрд░ рдЙрд╕рдХреЗ рдмрдЪреНрдЪреЛрдВ рдХреЛ рдЗрд╕ рд╕реНрдЯреЛрд░ рдХреЗ dispatch рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рдЧреБрдЬрд╛рд░реЗрдВ, рдпрд╛ рдХреЙрд▓рдмреИрдХ рдЬреЛ рдЙрд╕ dispatch рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ) ред

рдЗрд╕ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рдХреБрдЫ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЬреИрд╕реЗ рд░реЗрдбрдХреНрд╕-рдлреНрд░реИрдХреНрдЯрд▓, рд░реЗрдбрдХреНрд╕-рдпреВрдЖрдИ рдФрд░ рдЗрддрдиреЗ рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдпрд╛, рдЬреИрд╕рд╛ рдХрд┐ рдбреИрди рдиреЗ рдмрддрд╛рдпрд╛ рд╣реИ, рдЖрдк рдПрдХ рдШрдЯрдХ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд░рд┐рдбреНрдпреВрд╕рд░-рд╢реИрд▓реА рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рднреА рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ! Https://twitter.com/dan_abramov/status/736310245945933824 рджреЗрдЦреЗрдВ

рдореИрдВ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдХрд╣рд╛рдВ рдпреВрдЖрдИ рд░рд╛рдЬреНрдп рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рдирд╛ рд╣реИ рдЬреИрд╕реЗ рдЧрддрд┐рд╡рд┐рдзрд┐ рд╕рдВрдХреЗрддрдХ рдФрд░ рдореЛрдбрд▓ рдУрдкрди рдпрд╛ рдХреНрд▓реЛрдЬред рдХреНрдпрд╛ рд╕реЗрдЯрд╕реНрдЯреИрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдШрдЯрдХреЛрдВ рдХреА рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рд╣реЛрддреА рд╣реИ?

@ akshay2604 : рдлрд┐рд░ рд╕реЗ, рдпрд╣ рдЖрдкрдХреЗ рдКрдкрд░ рд╣реИред рдЗрд╕ рдереНрд░реЗрдб рдореЗрдВ рдореИрдВрдиреЗ рдкрд┐рдЫрд▓реА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдкреЛрд╕реНрдЯ рдХрд┐рдП рдЧрдП рд▓рд┐рдВрдХ рджреЗрдЦреЗрдВред рдШрдЯрдХреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╕рдордп рдЖрдк рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ setState рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЦрд╛рд╕рдХрд░ рдпрджрд┐ рдЖрдк рдЙрдиреНрд╣реЗрдВ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдВрдЬрд╛рдЗрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдореБрдЭреЗ рдЕрдкрдиреЗ рд╡рд┐рдЪрд╛рд░ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рджреЗрдВред

рдореИрдВ рд░рд╛рдЬреНрдп рдХреЛ 3 рд╡реНрдпрд╛рдкрдХ рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдореЗрдВ рд╡рд░реНрдЧреАрдХреГрдд рдХрд░рддрд╛ рд╣реВрдВ, рдЬрд┐рд╕рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдпрд╣ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдЗрдирдкреБрдЯ / рдЖрдЙрдЯрдкреБрдЯ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ:

  • "рдХреИрд╢": рдПрдХ рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдЬреЛ рд▓рдЧрд╛рддрд╛рд░ рдбреЗрдЯрд╛ рдХрд╛ рджрд░реНрдкрдг рд╣реИред рдЙрджрд╛рд╣рд░рдг:
{ "todos": [{ id: 1, title: "title" }, { id: 2, title: "title" }] }
  • "рдкрд░рд┐рд╡рд░реНрддрди": рдПрдХ рд╕реНрдерд┐рддрд┐ рдЬреЛ рдирд┐рд░рдВрддрд░ рдбреЗрдЯрд╛ рдореЗрдВ рд▓рдВрдмрд┐рдд рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг:
{ "changeTodo": { title: "title", action: "add", done: false },
{ id: 1, title: "changed title", action: "modify", done: true }, { id: 2, action: "delete" } }
  • "рджреГрд╢реНрдп": рдПрдХ рд░рд╛рдЬреНрдп рдЬреЛ рд╡рд░реНрддрдорд╛рди рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ, рд╕реЙрд░реНрдЯрд┐рдВрдЧ, рдЖрджрд┐ рдЬреИрд╕реЗ рджреГрд╢реНрдп рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдмрддрд╛рддрд╛ рд╣реИ рдЙрджрд╛рд╣рд░рдг:
{ "displayOptions": { searchTerm: "title", sort: ["title", "desc"], filter: "done=false" } }

рдЖрдк cache changes рдорд┐рдХреНрд╕ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдЖрдк cache view рдорд┐рд╢реНрд░рдг рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдЖрдк view рд╕рд╛рде рдорд┐рд╢реНрд░рдг рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ changes ред

рдмреЗрд╢рдХ рдЖрдкрдХреЛ рдЗрд╕реЗ рдХрд┐рд╕реА рдПрдХ рд░рд┐рдПрдХреНрд╢рди рдХрдВрдкреЛрдиреЗрдВрдЯ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рддрд░рд╣ рдорд░реНрдЬ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рддрд╛рдХрд┐ рдЖрдкрдХреА "рдорд░реНрдЬ" рд╡рд╕реНрддреБ рдмрди рдЬрд╛рдП:

{ "todos": [{id: undefined, title: "title", done: false }, { id: 1, title: "changed title" }] }

рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рд░рд╛рдЬреНрдп рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдЖрдкрдХреЗ рдЖрд╡реЗрджрди рддрд░реНрдХ рдХрд╛ рдПрдХ рдкрд░рд┐рдгрд╛рдо рд╣реИред рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдЗрд╕реЗ рдХрд╣реАрдВ рднреА рдирд╣реАрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЖрдк рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ рдореЗрдВ рдЗрд╕ рдорд░реНрдЬ рдХрд┐рдП рдЧрдП рд░рд╛рдЬреНрдп рдХреЛ рдХреИрд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЖрдк рдЗрд╕реЗ рд╕реНрдЯреЛрд░ рдореЗрдВ рдХреИрд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЖрдк рдЗрд╕реЗ рдШрдЯрдХреЛрдВ рдореЗрдВ рдХреИрд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ "рд░рд╛рдЬреНрдп" рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ, рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рддрд░реНрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕рднреА 3 рд░рд╛рдЬреНрдп рдЯреБрдХрдбрд╝реЛрдВ рдореЗрдВ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рд╕реЗ рдПрдХ рд╡рд┐рд▓рдп рд░рд╛рдЬреНрдп рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рдпрд╣реА рдХреНрд░рд┐рдпрд╛рддреНрдордХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИред

Redux рдЕрдиреБрд░рдХреНрд╖рдХ рдЖрдкрдХреЛ рдмрддрд╛рдПрдВрдЧреЗ "рдЕрд░реЗ, рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рддрд░реНрдХ рдХреЛ рдХрдИ reducers рдФрд░ рдХрдИ рдШрдЯрдирд╛рдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреЛ рдЖрдкрдХреЗ" рдорд░реНрдЬ рдХрд┐рдП рдЧрдП "рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рднрд╛рдЧреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдЧрд╛ред"
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЧрд▓рдд рддрд░реАрдХрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдк redux рд╕реЗ рджреВрд░ рдирд╣реАрдВ рдЬрд╛ рдкрд╛рдПрдВрдЧреЗред рдЖрдкрдХреЗ рд░рд╛рдЬреНрдп рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдХрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдХреНрдпрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдЖрдкрдХреЗ рдЖрд╡реЗрджрди рддрд░реНрдХ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реЛ рдЬрд╛рддрд╛

рдирдорд╕реНрддреЗ, рдореИрдВ рдХреБрдЫ рджрд┐рдиреЛрдВ рдХреЗ рд▓рд┐рдП React / Redux рдореЗрдВ рдЦреБрджрд╛рдИ рдХрд░рддрд╛ рд╣реВрдВ, рдпрд╣ рдЪреБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдП рдЧрдП рдирд┐рд░реНрдгрдп рдХреЛ рд╕рдордЭреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдХреБрдЫ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдЪрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдШрдЯрдХ рд╕реНрдерд╛рдиреАрдп рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ 1 рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЗ рд▓рд┐рдП рджреЛрдиреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ? рдпрд╣рд╛рдБ рдЙрдкрдпреЛрдЧ-рдорд╛рдорд▓рд╛ рд╣реИ, рдЬреЛ рдмрд╣реБрдд рдЖрдо рд╣реИ:

  1. [рд╕рдВрджрд░реНрдн] Redux рд╕реНрдЯреЛрд░ рдПрдХ рдПрдХрд▓ рдкрддреНрддрд╛ { modelItems: myModelItems } ред рдпрд╣ рд╕рд░реНрд╡рд░ рдореЙрдбрд▓ рдХреЛ рдХреИрд╢ рдХрд░рддрд╛ рд╣реИ (/ рдХрд╛ рдПрдХ рдкреНрд░рдХреНрд╖реЗрдкрдг)
  2. [рд╕рдВрджрд░реНрдн] рджреГрд╢реНрдп рдПрдХ рдПрдХрд▓ рд╕реНрдорд╛рд░реНрдЯ рдШрдЯрдХ MyItemsView рд╕реЗ рдмрдирд╛ рд╣реИ рдЬреЛ рд╕рдВрдЧреНрд░рд╣реАрдд / рдХреИрд╢реНрдб рд╡рд╕реНрддреБрдУрдВ рдХреА рдПрдХ рдпреВрдЖрдИ-рд╕реВрдЪреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рдШреБрдбрд╝рд╕рд╡рд╛рд░ рд╣реЛрдиреЗ рдкрд░, рдШрдЯрдХ рдПрдХ рдореЙрдбрд▓-рдЖрдЗрдЯрдо рд▓рд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрддрд╛ рд╣реИред рдШрдЯрдХ рдЗрдирдкреБрдЯ: myModelItems ред рдШрдЯрдХ рдЖрдЙрдЯрдкреБрдЯ: рдПрдХ fetchModelItems рдПрдХреНрд╢рди-рдЯреНрд░рд┐рдЧрд░ред рдШрдЯрдХ рдЗрдВрдЯрд░реНрдирд▓реНрд╕: state.busy рдФрд░ state.errorId
  3. [рдпреЛрдЬрдирд╛] рдЬрдм MyItemsView рдЪрд▓рд╛рддрд╛ fetchModelItems , рдПрдХ HTTP рдЕрдиреБрд░реЛрдз рдЖрджреЗрд╢ рдореЙрдбрд▓ рдФрд░ рджреБрдХрд╛рди рдореЗрдВ рдпрд╣ рдХреИрд╢ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрдВ рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рднреЗрдЬрд╛ рд╣реИред рдЗрд╕ async рдХрд╛рд░реНрд░рд╡рд╛рдИ рдореЗрдВ 4 рдЪрд░рдг рд╣реИрдВ рдФрд░ рдЬрд┐рддрдиреЗ рднреА рд╣реБрдХ рд╣реИрдВ: onStarted (HTTP рдЕрдиреБрд░реЛрдз рд▓реЗ-рдСрдл, рд▓реЛрдбрд┐рдВрдЧ рд╕реНрдкрд┐рдирд░ рдШрдЯрдХ рдореЗрдВ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ), onEnded (HTTP рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЙрддрд░рд╛, рдШрдЯрдХ рдореЗрдВ рд▓реЛрдбрд┐рдВрдЧ рд╕реНрдкрд┐рдирд░ рд╕реНрдЯреЙрдк , рдПрдХ рдЕрднреА рднреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рд╕реНрдерд┐рддрд┐ рдкрд░ рдзреНрдпрд╛рди рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ), onFailed (рдПрдХ рддреНрд░реБрдЯрд┐ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдШрдЯрдХ рдореЗрдВ рджрд┐рдЦрд╛рдИ рдЧрдИ рд╣реИ) рдФрд░ onSucceed (Redux рд╕реНрдЯреЛрд░ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рддреЛ рдЗрд╕реЗ рд░рдЦрдиреЗ рд╡рд╛рд▓реЗ рдореЙрдбрд▓-рдХреИрд╢ рдХреЛ рдЖрдЧреЗ рднреЗрдЬ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдШрдЯрдХ)

рдЗрд╕рд▓рд┐рдП, fetchModelItems рдПрдХреНрд╢рди-рдЯреНрд░рд┐рдЧрд░ рдХреЛ рдХреИрд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП:

  • onStarted , onEnded рдФрд░ onFailed Redux рд╕реНрдЯреЛрд░ рдХреЛ рд╣рд┐рдЯ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ? рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ onStarted рдФрд░ onEnded рдХреНрд╖рдгрд┐рдХ рдпреВрдЖрдИ рд╕реНрдЯреЗрдЯреНрд╕ рд╣реИрдВ рдЬрд┐рдирдХрд╛ рдореЙрдбрд▓-рдХреИрд╢ рдХреЗ рд╕рд╛рде рдХреЛрдИ рдЗрдВрдЯрд░реИрдХреНрд╢рди рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╡рд╣реА onFailed рд▓рд┐рдП рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ (рдореЙрдбрд▓-рдХреИрд╢ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд░рд╣рддрд╛ рд╣реИ рдФрд░ UI рдПрдХ рддреНрд░реБрдЯрд┐ рд╕реВрдЪрдирд╛ рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛)ред MyItemsView рдпреВрдЖрдИ-рд░рд╛рдЬреНрдп рдХреЛ рдпрд╣рд╛рдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░реЗрдЧрд╛, рдХреИрд╢реНрдб-рдореЙрдбрд▓ рдирд╣реАрдВ
  • onSucceed Redux рд╕реНрдЯреЛрд░ рд╣рд┐рдЯ рдХрд░рддрд╛ рд╣реИ? рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдиреЗ рдореЙрдбрд▓-рдХреИрд╢ рд▓реЙрдЯрд░реА рдЬреАрддреА рд╣реИ, рдЗрд╕реЗ рд╕рддреНрдп рдХреЗ рд╕реНрд░реЛрдд рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рддреА рд╣реИ, рд╢реЙрд╡рд░ рдФрд░ рд░рд┐рд╣рд╛рдЗрдбреНрд░реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдлрд┐рд░ рддрд╛рдЬрд╛ myModelItems MyItemsView

рдореЗрд░реЗ рд╡рд░реНрддрдорд╛рди рдкреНрд░рдпрд╛рд╕ рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, Redux Thunk fetchModelItems рдПрдХреНрд╢рди-рдЯреНрд░рд┐рдЧрд░ рдХрд╛ рдзреНрдпрд╛рди рд░рдЦрддрд╛ рд╣реИред рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рд╡рд╣рд╛рдВ Redux рдкрде рдХреЛ рдЪреБрдирд╛ рд╣реИ, рдФрд░ рдореИрдВ рдЕрдкрдирд╛ рдорди рдЕрдм рдпрд╣ рдмрддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ "Redux рд╕реНрдЯреЛрд░ рдкрд░ рд╕рд┐рд░реНрдл Async рд╕рдлрд▓рддрд╛ рдХреЛ рдкрд╛рд╕ рдХрд░реЗрдВ, рд░рд┐рдПрдХреНрдЯ рдХрдВрдкреЛрдиреЗрдВрдЯ рд╕реНрдЯреЗрдЯ рдореЗрдВ рдХреБрдЫ рдФрд░ рд░рдЦреЗрдВ"ред

рдЗрд╕ рд╕реЗ рд╣реИрд░рд╛рди, рдореИрдВ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдлрд▓рддрд╛рдУрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реВрдВ, рдЬреЛ рдХрд┐ рдЬреБрдбрд╝реЗ рдШрдЯрдХ (рдпрд╛рдиреА рд░реЗрдбрдХреНрд╕ рдХрдВрдЯреЗрдирд░) рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдХреА рддрд░рдл рд╣реИред рд▓реЗрдХрд┐рди рдХреЛрдИ рд▓реЛрдбрд┐рдВрдЧ рд╕реНрдкрд┐рдирд░ рдФрд░ рдПрдХ рджрдпрдиреАрдп рд╕рд╛рдВрддреНрд╡рдирд╛-рд▓реЙрдЧ рддреНрд░реБрдЯрд┐-рд╕рдВрджреЗрд╢ atmред рдореИрдВ store.ui.myItemsView.busy рдФрд░ рди рд╣реА store.ui.myItemsView.errorId рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛, рд▓реЗрдХрд┐рди рдмрд╕ рдШрдЯрдХ рд░рд╛рдЬреНрдп рдореЗрдВ рдЙрди рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред

@ рдкрд╛рд╕реНрдХрд▓рд╡ :
рдпрд╣ рдПрдХ рдмрдЧ рдЯреНрд░реИрдХрд░ рд╣реИ, рд╕рдорд░реНрдерди рдкреНрд░рдгрд╛рд▓реА рдирд╣реАрдВ рд╣реИред рдЙрдкрдпреЛрдЧ рдХреЗ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рд▓рд┐рдП, рдХреГрдкрдпрд╛ рд╕реНрдЯреИрдХ рдУрд╡рд░рдлреНрд▓реЛ рдпрд╛ рд░рд┐рдПрдХреНрдЯрд┐рдлреНрд▓рдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдЬрд╣рд╛рдВ рдЖрдкрдХреА рд╕рд╣рд╛рдпрддрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдзрд┐рдХ рд▓реЛрдЧ рддреИрдпрд╛рд░ рд╣реИрдВ - рдЖрдкрдХреЛ рд╢рд╛рдпрдж рдмреЗрд╣рддрд░ рдЙрддреНрддрд░ рдорд┐рд▓реЗрдЧрд╛ред рдзрдиреНрдпрд╡рд╛рдж!

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

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

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

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

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

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

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