Redux: рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ...

рдХреЛ рдирд┐рд░реНрдорд┐рдд 20 рд╕рд┐рддре░ 2015  ┬╖  13рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: reduxjs/redux

рдирдорд╕реНрддреЗ,

рдореИрдВ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд░реБрдЪрд┐ рдХреЗ рд╕рд╛рде рдкрдврд╝рддрд╛ рд╣реВрдВ, рдФрд░ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд░рд╛рдЬреНрдп рдХреЛ рдХреИрд╕реЗ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореИрдВ рдХреБрдЫ рд╣рдж рддрдХ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдРрд╕рд╛ рдХреНрдпреЛрдВ рд╣реИ, рдлрд┐рд░ рднреА, "рдирдИ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдмрдирд╛рдиреЗ рдореЗрдВ рд▓рдЧрдиреЗ рд╡рд╛рд▓реЗ рд╕рдордп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд┐рдд" рдореЗрд░реА рддрд░рдл рдпрд╛ рддреЛ рдЬреЗрдПрд╕ рдореЗрдВ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рддрдирд╛ рддреЗрдЬ / рдзреАрдорд╛ рд╣реИ, рдпрд╛ рдореБрдЭреЗ рдХреБрдЫ рдФрд░ рдпрд╛рдж рдЖ рд░рд╣рд╛ рд╣реИред

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

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

рдореИрдВ рдпрд╣ рд╕рдм рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдирдпрд╛ рд╣реВрдВ рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдорд╛рдл рдХрд░ рджреЛ рдЕрдЧрд░ рдореИрдВ рд░рд╛рдЬреНрдп рдХреЛ рди рдмрджрд▓рдиреЗ рдХреА рдзрд╛рд░рдгрд╛ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреБрдЫ рдпрд╛рдж рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореИрдВ рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рд╕реЗ рдкреНрдпрд╛рд░ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдШрдЯрдХреЛрдВ рдХреЛ рдХреЗрд╡рд▓ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдбреЗрдЯрд╛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП ... рд▓реЗрдХрд┐рди рдлрд┐рд░ рдШрдЯрдХ рдХреЛ рдлрд┐рд░ рд╕реЗ, рдпрд╣ рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдпрд╛ рдкрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╣реИ рдпрд╛ рдирд╣реАрдВ .. рдЗрд╕рдХрд╛ рд╕рд┐рд░реНрдл рдбреЗрдЯрд╛ рдЬреЛ рдХрд╣реАрдВ рд╕реЗ рдкрд╛рд░рд┐рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдПрдХ рд╕рдВрдШрд░реНрд╖ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдкреВрд░реЗ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдмрдирд╛рдо рдкрд░рд╕реНрдкрд░ рдЕрд╡рд╕реНрдерд╛ рдХреЗ рд╕рд╛рдеред

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

рдмрд╕ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП: рд░рд╛рдЬреНрдп рд╣рд░ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдкрд░ рдЧрд╣рд░рд╛ рдХреНрд▓реЛрди рдирд╣реАрдВ рд╣реИред рдХреЗрд╡рд▓ рдЬреЛ рднрд╛рдЧ рдмрджрд▓ рдЧрдП рд╣реИрдВ рдЙрдиреНрд╣реЗрдВ рдХреНрд▓реЛрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдлрд┐рд░ рд╕реЗ, рдЧрд╣рд░рд╛рдИ рд╕реЗ рдирд╣реАрдВ - рдЬреЛ рдмрджрд▓ рдЧрдпрд╛ рд╣реИ рдЙрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ)ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рдЯреВрдбреВрд╡реАрд╡реАрд╕реА рдРрдк рдореЗрдВ рдПрдХ рдЯреВрдбреВ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреЗрд╡рд▓ рдЙрд╕ рдЯреВрдбреВ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдХреНрд▓реЛрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЯреВрдбреВ рдХреА рдмрд╛рдХреА рдЪреАрдЬреЗрдВ рд╕рдорд╛рди рд╣реИрдВред рдмреЗрд╢рдХ, рдПрдХ рдирдпрд╛ рд░реВрдЯ рдЯреВрдбреВ рд▓рд┐рд╕реНрдЯ рдПрд░реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдирдИ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рдХреНрд▓реЛрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрджрд┐ рд╡реЗ рдирд╣реАрдВ рдмрджрд▓реЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЙрддрдирд╛ рдорд╣рдВрдЧрд╛ рдирд╣реАрдВ рд╣реИ рдЬрд┐рддрдирд╛ рдпрд╣ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬрдм рдпрд╣ рдорд╣рдВрдЧрд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рддреЗрдЬреА рд╕реЗ рд╕рд░рдгреА рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди), рддреЛ рдЖрдк рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рдХрд┐ Immutable.js рдЬреЛ рд╕рдВрд░рдЪрдирд╛рддреНрдордХ рдмрдВрдЯрд╡рд╛рд░реЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рддреЗрдЬреА рд╕реЗ рдирдХрд▓ рд╣реИред Immutable.js рдХреЗ рд╕рд╛рде, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдмрдбрд╝реЗ рд╕рд░рдгрд┐рдпреЛрдВ рдХреА рдирдХрд▓ рдХрд░рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрддрдирд╛ рдорд╣рдВрдЧрд╛ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╕реНрдореГрддрд┐ рдХреЗ рдмрдбрд╝реЗ рд╣рд┐рд╕реНрд╕реЗ рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдВрдд рдореЗрдВ, рдЪрд╛рд╣реЗ рдпрд╛ рдмрд┐рдирд╛ Immutable.js рдХреЗ рд╕рд╛рде, рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдпрддрд╛ рд╣рдореЗрдВ рдХреБрд╢рд▓рддрд╛рдкреВрд░реНрд╡рдХ рдРрдк рдХреЛ рдлрд┐рд░ рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдореЗрдВ рдкрддрд╛ рд╣реИ рдХрд┐ _what_ рдиреЗ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрд┐рдд рдирд╣реАрдВ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рдмрджрд▓ рджрд┐рдпрд╛ рд╣реИред

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

рдпрд╣ рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдФрд░ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИред

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

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

рдФрд░ рдЖрдкрдХреЛ рд╕рдордп рдпрд╛рддреНрд░рд╛ рдЬреИрд╕реА рдореБрдлреНрдд рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреА рд╣реИрдВ рдЬреЛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИред

# 328 рдХреЗ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдмрдВрдж рдХрд░рдирд╛ред

рдмрд╕ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП: рд░рд╛рдЬреНрдп рд╣рд░ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдкрд░ рдЧрд╣рд░рд╛ рдХреНрд▓реЛрди рдирд╣реАрдВ рд╣реИред рдХреЗрд╡рд▓ рдЬреЛ рднрд╛рдЧ рдмрджрд▓ рдЧрдП рд╣реИрдВ рдЙрдиреНрд╣реЗрдВ рдХреНрд▓реЛрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдлрд┐рд░ рд╕реЗ, рдЧрд╣рд░рд╛рдИ рд╕реЗ рдирд╣реАрдВ - рдЬреЛ рдмрджрд▓ рдЧрдпрд╛ рд╣реИ рдЙрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ)ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рдЯреВрдбреВрд╡реАрд╡реАрд╕реА рдРрдк рдореЗрдВ рдПрдХ рдЯреВрдбреВ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреЗрд╡рд▓ рдЙрд╕ рдЯреВрдбреВ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдХреНрд▓реЛрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЯреВрдбреВ рдХреА рдмрд╛рдХреА рдЪреАрдЬреЗрдВ рд╕рдорд╛рди рд╣реИрдВред рдмреЗрд╢рдХ, рдПрдХ рдирдпрд╛ рд░реВрдЯ рдЯреВрдбреВ рд▓рд┐рд╕реНрдЯ рдПрд░реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдирдИ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рдХреНрд▓реЛрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрджрд┐ рд╡реЗ рдирд╣реАрдВ рдмрджрд▓реЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЙрддрдирд╛ рдорд╣рдВрдЧрд╛ рдирд╣реАрдВ рд╣реИ рдЬрд┐рддрдирд╛ рдпрд╣ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬрдм рдпрд╣ рдорд╣рдВрдЧрд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рддреЗрдЬреА рд╕реЗ рд╕рд░рдгреА рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди), рддреЛ рдЖрдк рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рдХрд┐ Immutable.js рдЬреЛ рд╕рдВрд░рдЪрдирд╛рддреНрдордХ рдмрдВрдЯрд╡рд╛рд░реЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рддреЗрдЬреА рд╕реЗ рдирдХрд▓ рд╣реИред Immutable.js рдХреЗ рд╕рд╛рде, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдмрдбрд╝реЗ рд╕рд░рдгрд┐рдпреЛрдВ рдХреА рдирдХрд▓ рдХрд░рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрддрдирд╛ рдорд╣рдВрдЧрд╛ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╕реНрдореГрддрд┐ рдХреЗ рдмрдбрд╝реЗ рд╣рд┐рд╕реНрд╕реЗ рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдВрдд рдореЗрдВ, рдЪрд╛рд╣реЗ рдпрд╛ рдмрд┐рдирд╛ Immutable.js рдХреЗ рд╕рд╛рде, рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдпрддрд╛ рд╣рдореЗрдВ рдХреБрд╢рд▓рддрд╛рдкреВрд░реНрд╡рдХ рдРрдк рдХреЛ рдлрд┐рд░ рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдореЗрдВ рдкрддрд╛ рд╣реИ рдХрд┐ _what_ рдиреЗ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрд┐рдд рдирд╣реАрдВ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рдмрджрд▓ рджрд┐рдпрд╛ рд╣реИред

рдЖрд╣ .... рдпрд╣ рджреЗрдЦреЗрдВ рдХрд┐ рдЕрдВрддрд┐рдо рдмрд┐рдЯ рдЕрдм рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ ... рдореИрдВ рдпрд╣ рдорд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рдпрд╣ рдХрд╣ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдШрдЯрдХ рд░реЗрдВрдбрд░ рдХреЗ рдХрд╛рд░рдг рдХреЗрд╡рд▓ рдХрд┐рд╕ рд░рд╛рдЬреНрдп рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд╣реБрдЖ рд╣реИ, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рднрд┐рдиреНрди рд╣реИ / рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк redraw рдЗрдВрдЬрди рддреЗрдЬ рд╣реИ? рдЗрд╕реА рддрд░рд╣ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ shouldComponentUpdate рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдпрд╣ рдХрд╣ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдШрдЯрдХ рдХреЗ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдХрд╛рд░рдг рдХреЗрд╡рд▓ рд░рд╛рдЬреНрдп рдореЗрдВ рдХреНрдпрд╛ рдкрд░рд┐рд╡рд░реНрддрди рд╣реБрдЖ, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рднрд┐рдиреНрди рд╣реИ / redraw рдЗрдВрдЬрди рдкрд░рд┐рдгрд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рддреЗрдЬ рд╣реИ? рдЗрд╕реА рддрд░рд╣ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ shouldComponentUpdate рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, react-redux рдПрдХ рдЖрдХреНрд░рд╛рдордХ shouldComponentUpdate рд╣реБрдб рдХреЗ рддрд╣рдд рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдпрддрд╛ рдЧрд╛рд░рдВрдЯреА рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

@gaearon рдЗрд╕ рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬрдм рдпрд╣ рдорд╣рдВрдЧрд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рддреЗрдЬреА рд╕реЗ рд╕рд░рдгреА рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди), рддреЛ рдЖрдк рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рдХрд┐ Immutable.js рдЬреЛ рд╕рдВрд░рдЪрдирд╛рддреНрдордХ рдмрдВрдЯрд╡рд╛рд░реЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рддреЗрдЬреА рд╕реЗ рдирдХрд▓ рд╣реИред

рдореИрдВ 8000 рдкрджреЛрдВ рддрдХ рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╕рд░рдгреА рд╕реЗ рдЕрдкрдбреЗрдЯ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП redux рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдкреНрд░рддрд┐ 100ms рдореЗрдВ 10-100 рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдереНрд░реВрдкреБрдЯ рд╣реЛрдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░рддрд╛ рд╣реВрдВред рдХреНрдпрд╛ рдореИрдВ рд╣рд╛рд░рдиреЗ рдХреА рд▓рдбрд╝рд╛рдИ рд▓рдбрд╝ рд░рд╣рд╛ рд╣реВрдВ рддрд╛рдХрд┐ рд░рд╛рдЬреНрдп рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рдП?
рд╣рдо DOM рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдХреИрдирд╡рд╛рд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд░рд╛рдЬреНрдп рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдпрд╣ рд╕рдордЭрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдЖрдкрдХреЗ рдЕрдиреБрднрд╡ рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХреА рдЖрд╡реГрддреНрддрд┐ рд╣рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдХрд╛рд░рдг рдмрдиреЗрдЧреА рдпрд╛ рдирд╣реАрдВред

@dougajmcdonald : рдореЗрд░рд╛ рдкрд╣рд▓рд╛ рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЙрд╕ рдХрд╛рдо рдХреЛ рдХрд┐рд╕реА рддрд░рд╣ рд╕реЗ рдкреВрд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ? рдХреНрдпрд╛ рдЖрдкрдХреЛ UI рдХреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЕрдкрдбреЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЕрдкрдбреЗрдЯ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдирд╛ рд╣реИ?

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рдЖрдк Redux рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдкреНрд░рджрд░реНрд╢рди рдкрд░ рдЗрди рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рджреЗрдЦреЗрдВ:

рдореИрдВ рд░рд┐рдПрдХреНрдЯрд┐рдлрд╝реНрд▓рдХреНрд╕ рдЪреИрдЯ рдЪреИрдирд▓реЛрдВ рдореЗрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдЕрдзрд┐рдХ рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдореЗрдВ рдкреНрд░рд╕рдиреНрди рд╣реЛрдЧрд╛ред

@markerikson рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рд╣рд╛рдБ, рдЦреЗрд▓ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдореЗрдВ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдмрдбрд╝реА рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдХрдИ рддреЗрдЬрд╝ рдЕрдкрдбреЗрдЯ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЕрдкрдиреА рдореВрд▓ рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рдерд╛, рдЬрдм рдореИрдВ рдХрд╣рддрд╛ рд╣реВрдВ рдХрд┐ 10-100 рдмрджрд▓рд╛рд╡ рд╣реИрдВ, рддреЛ рдпреЗ рд╕рднреА рдЯреНрд░рд┐рдЧрд░ рдирд╣реАрдВ рд╣реЛрдВрдЧреЗред 10-100 рдкрд░рд┐рд╡рд░реНрддрди рд░рд╛рдЬреНрдп рдкрд░рд┐рд╡рд░реНрддрди рд╣реИрдВ рдЬреЛ рдкреНрд░рддрд┐ 100ms рдПрдХ рдПрдХрд▓ redraw рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЗрд╕рд▓рд┐рдП рдореЗрд░рд╛ рдкреНрд░рд╢реНрди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣реИ, рдЕрдЧрд░ рдореИрдВ рдЕрдкрдиреЗ рдЕрдкрдбреЗрдЯ рдХреЛ 100-100 рдореЗрдВ 10-100 рд░рд╛рдЬреНрдп рдкрд░рд┐рд╡рд░реНрддрди рдореЗрдВ рдмреИрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдерд╛, рддреЛ рдХреНрдпрд╛ рд░рд┐рдбрдХреНрд╕ рдХреЗ рднреАрддрд░ рд░рд╛рдЬреНрдп рдкреНрд░рдмрдВрдзрди рдЗрдиреНрд╣реЗрдВ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛ рдЬреЛ рд╕рдордЭрджрд╛рд░реА рд╕реЗ 100ms'esque рд╡рд┐рдВрдбреЛ рдХреЗ рднреАрддрд░ рдкреВрд░рд╛ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдЪреАрдЬреЛрдВ рдХреЛ рдкреАрдЫреЗ рдЫреЛрдбрд╝рдирд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдмрд┐рдирд╛ рдПрдХ redraw рдЕрдиреБрдорддрд┐ рджреЗрдВред
рд░рд╛рдЬреНрдп рдХреЗ рдЕрдкрдбреЗрдЯ рдореЗрдВ рдореВрд▓ рд░реВрдк рд╕реЗ рдЖрдХрд╛рд░ 8000 рдореЗрдВ рд╕рд░рдгреА рдореЗрдВ 3-4 рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреЛ рдмрджрд▓рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдкреНрд░рддрд┐ рдорд┐рдирдЯ 1-10 рдореЗрдВ рдПрдХ рдирдпрд╛ рд╕рд░рдгреА рдмрдирд╛рдиреЗ рдХреА рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ (рдпрд╣ рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐ рд╣рдо рдЪреАрдЬреЛрдВ рдХреЛ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ) рд╕рд░рдгреА рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдХреЗ рднреАрддрд░ рдСрдмреНрдЬреЗрдХреНрдЯред рд╡рд╕реНрддреБрдПрдВ рдХрд╛рдлреА рдЫреЛрдЯреА рд╣реИрдВ (3-4 рдЧреБрдг, рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рдПрдХ рдЬреЛрдбрд╝реЗ рдФрд░ рдЫреЛрдЯреЗ рддрд╛рд░реЛрдВ рдХреЗ рдПрдХ рдЬреЛрдбрд╝реЗ)

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

@dougajmcdonald : рдареАрдХ рд╣реИ, "Redux рдореЗрдВ рд░рд╛рдЬреНрдп рдкреНрд░рдмрдВрдзрди" рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рд░реВрдЯ reducer рдлрд╝рдВрдХреНрд╢рди рд╣реИред

Immutable.js рдПрдХ рдЬрд╛рджреВ рдкреВрд░реНрдг-рд╕реБрдзрд╛рд░ рд░рдЬрдд-рдмреБрд▓реЗрдЯ рдирд╣реАрдВ рд╣реИред рдпрд╣ рдХреБрдЫ рдЪреАрдЬреЛрдВ рдХреЛ рддреЗрдЬ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдЕрдиреНрдп рдЪреАрдЬреЗрдВ рдзреАрдореА рд╣реЛ рд╕рдХрддреА рд╣реИрдВред рдореБрдЭреЗ Immutable.js- рд╕рдВрдмрдВрдзрд┐рдд рдкреВрд░реНрдг рд╡рд┐рдЪрд╛рд░реЛрдВ рдкрд░ рдХрдИ рд▓реЗрдЦ рдорд┐рд▓реЗ рд╣реИрдВ

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

рдореЗрд░реА рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╕рд▓рд╛рд╣ рд╕рд░рд▓ рд╢реБрд░реБрдЖрдд рдХрд░рдиреЗ рдХреА рд╣реЛрдЧреАред рдмрд╕ рд╕рд╛рджрд╛ JS рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдФрд░ рд╕рд░рдгрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдЙрдиреНрд╣реЗрдВ "рдпрд╛ рддреЛ рд╣рд╛рде рд╕реЗ" рдпрд╛ рдЙрдкрд▓рдмреНрдз рдХрдИ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдЕрджреНрдпрддрди рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ

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

рдирд╛рдХ рдкрд░ рд▓рд┐рдпрд╛ рдЧрдпрд╛ @markersonson рд╕реВрдХреНрд╖реНрдо
рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдкрд░ рдмрд┐рдВрджреБ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рдФрд░ рдкреНрд░рддреНрдпрдХреНрд╖ рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди рдкрд░ рдЕрдВрдХ рдореИрдВ рдереЛрдбрд╝рд╛ рдкрдврд╝реВрдВрдЧрд╛ рдФрд░ рдЗрди рдкрд░ рднреА рд╡рд┐рдЪрд╛рд░ рдХрд░реВрдВрдЧрд╛ред
рдлрд┐рд▓рд╣рд╛рд▓ рдореЗрд░реА рд╡рд┐рдЪрд╛рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдХреИрдирд╡рд╛рд╕ рд╕реЗ Redux рд╕реНрдерд┐рддрд┐ рдХреЛ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рд╣реИ рдФрд░ рдмрд╕ рдкрдм / рд╕рдм рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдВрджреЗрд╢ рдХреЛ рдкрд╛рд╕ рдХрд░рдирд╛ рд╣реИ (рдЬреЛ рдХрд┐ рд╣рдордиреЗ рдЗрд╕реЗ рдкрд╣рд▓реЗ рд╣реА рд╣реБрдХ рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ) рдмрд╕ рдЕрдзрд┐рдХ рдЪрд▓рддреА рднрд╛рдЧреЛрдВ рдХреЗ рд╕рд╛рде

рдореИрдВ рдЗрд╕рд╕реЗ рдмрджрд▓рдиреЗ рдХреА рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВ:
рдкрдмрд╕реБрдм> рдкреНрд░реЗрд╖рдг ()> reducer> redux рд░рд╛рдЬреНрдп> рдШрдЯрдХ рд╕рд╛рдордЧреНрд░реА рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░реЗрдВ> рдХреИрдирд╡рд╛рд╕ рд░реЗрдВрдбрд░ред

рд╕реЗрд╡рд╛:
рдкрдмрд╕реБрдм> рд╕реНрдерд╛рдиреАрдп рдШрдЯрдХ рд░рд╛рдЬреНрдп> рдХреИрдирд╡рд╛рд╕ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛

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

рдЖрдкрдХреЗ рдкреНрд░рд╢реНрди рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдорд╛рдиреНрдп рд╣реИрдВред рд╡рд╕реНрддреБрдд: рд░рд┐рдбреНрдпреВрдХреНрд╕ рдХреЗ рд╡реАрдпреВрдЬ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рд╡реАрдпреВрдПрдХреНрд╕ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдореНрдпреВрдЯреЗрд╢рди рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЗ рддрд╣рдд рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП 'рд░рд┐рдбреНрдпреВрд╕рд░' рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореНрдпреВрдЯреЗрд╢рди рдХрд╣рд▓рд╛рддреЗ рд╣реИрдВ рдФрд░ рдЬрдм рддрдХ рдЖрдк рд░рд╛рдЬреНрдп рдХреЛ рдХреЗрдВрджреНрд░реАрдХреГрдд рд╕реНрдерд╛рди рдкрд░ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддрдм рддрдХ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реЛрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ vue рдРрдк рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХреЛрдВ рдФрд░ рдЕрдиреНрдп рд╕рд╛рдорд╛рди рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп vue рдХреЗ рд╕реАрдП рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред Redux рдЕрдЪреВрдХ рд╣реИ рдФрд░ рдЕрдВрдд рдореЗрдВ рджреЛрдиреЛрдВ рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╣реЛрддреА рд╣реИред VS vue рд╡рд░реНрдЪреБрдЕрд▓ рдбреЛрдо рдЕрдкрдбреЗрдЯ рдЬреНрдпрд╛рджрд╛рддрд░ рдЙрд╕реА рдмрд┐рдВрджреБ рдкрд░ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдпрд╣ рдХрд╣рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╕рднреА рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рджреВрд╕рд░реЗ рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИ

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