Redux: рдЕрдкрдиреЗ рд╕рднреА рд░рд╛рдЬреНрдп рдХреЛ рдПрдХ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдкрд░рдорд╛рдгреБ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рдХреНрдпрд╛ рдиреБрдХрд╕рд╛рди рд╣реИрдВ?

рдХреЛ рдирд┐рд░реНрдорд┐рдд 10 рдлрд╝рд░ре░ 2016  ┬╖  91рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: reduxjs/redux

рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рд╕рднреА рд░рд┐рдбрдХреНрд╕ рдореЗрдВ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕рд┐рджреНрдзрд╛рдВрдд рд╣реИ, рдФрд░ рдпрд╣ рдЗрди рд╕рднреА рднрдпрд╛рдирдХ рд▓рд╛рднреЛрдВ рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИ рдЬреЛ рдЕрдм рддрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЬреНрдЮрд╛рдд рд╣реИрдВред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдЬрдЧрд╣ рдЬреЛ рдХрд┐ рд░рд┐рдбрдХреНрд╕ рдХреА рдХрдореА рд╣реИ, рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдЦреБрд▓реЗ рддреМрд░ рдкрд░ рдЗрд╕ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд╡реИрдЪрд╛рд░рд┐рдХ рдиреБрдХрд╕рд╛рди рдХрд╛ рд╡рд░реНрдгрди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рд╢рд╛рдпрдж рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рд▓реЛрдЧ рдирдХрд╛рд░рд╛рддреНрдордХрддрд╛рдУрдВ рдХреЗ рдХрд╛рд░рдг рд╢рд░реНрдо рди рдХрд░реЗрдВред

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

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

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

рдХреНрдпреЛрдВрдХрд┐ рддреБрдо рд▓реЛрдЧреЛрдВ рдиреЗ рд╢рд╛рдпрдж рдореЗрд░реЗ рд╡рд┐рдЪрд╛рд░ рд╕реЗ рдЗрд╕ рдкрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рд╣реИ, рдХреНрдпрд╛ рддреБрдо рдореЗрд░реЗ рд▓рд┐рдП рдЗрд╕реЗ рд╕реНрдкрд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реЛ?

discussion docs question

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

Redux рдореВрд▓ рд░реВрдк рд╕реЗ рдЗрд╡реЗрдВрдЯ-рд╕реЛрд░реНрд╕рд┐рдВрдЧ рд╣реИ рдЬрд╣рд╛рдВ рдЙрдкрднреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХрд▓ рдкреНрд░рдХреНрд╖реЗрдкрдг рд╣реИред

рд╡рд┐рддрд░рд┐рдд рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдореЗрдВ, рдЖрдо рддреМрд░ рдкрд░ рдПрдХ рдИрд╡реЗрдВрдЯ рд▓реЙрдЧ рд╣реЛрддрд╛ рд╣реИ (рдЬреИрд╕реЗ рдХрд╛рдлреНрдХрд╛), рдФрд░ рдХрдИ рдЙрдкрднреЛрдХреНрддрд╛ рдЬреЛ рдЗрд╕ рд▓реЙрдЧ рдХреЛ рдХрдИ рдбреЗрдЯрд╛рдмреЗрд╕ / рд╕реНрдЯреЛрд░ рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ / рдХрдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╡рд┐рднрд┐рдиреНрди рд╕рд░реНрд╡рд░реЛрдВ рдкрд░ рд╣реЛрд╕реНрдЯ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ (рдЖрдорддреМрд░ рдкрд░, рдПрдХ рдбреАрдмреА рдкреНрд░рддрд┐рдХреГрддрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд░рд┐рдбреНрдпреВрд╕рд░ рд╣реИ)ред рддреЛ рдПрдХ рд╡рд┐рддрд░рд┐рдд рджреБрдирд┐рдпрд╛ рдореЗрдВ рд▓реЛрдб рдФрд░ рдореЗрдореЛрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣реЛрддрд╛ рд╣реИ ... рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ Redux рдореЗрдВ рдЕрдЧрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕реИрдХрдбрд╝реЛрдВ рд╡рд┐рдЬреЗрдЯ рд╣реИрдВ, рдЬрд┐рдирдХреА рд╕рднреА рдореЗрдВ рдЕрдкрдиреА рд╕реНрдерд╛рдиреАрдп рд╕реНрдерд┐рддрд┐ рд╣реИ, рдпрд╣ рд╕рдм рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЪрд▓рддрд╛ рд╣реИ, рдФрд░ рд╣рд░ рд░рд╛рдЬреНрдп рдкрд░рд┐рд╡рд░реНрддрди рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг рдХреБрдЫ рдУрд╡рд░рд╣реЗрдб рд╣реЛрддрд╛ рд╣реИ рдбреЗрдЯрд╛ рдЕрдкрдбреЗрдЯред

рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдпрд╣ рдУрд╡рд░рд╣реЗрдб рдПрдХ рдмрдбрд╝реА рдмрд╛рдд рдирд╣реАрдВ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЬрдм рдЯреЗрдХреНрд╕реНрдЯ рдЗрдирдкреБрдЯ рдмрдврд╝рддреЗ рд╣реБрдП рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рд░рд╛рдЬреНрдп рдЖрдХрд╛рд░ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдзреАрдореА рдореЛрдмрд╛рдЗрд▓ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рддреЗрдЬреА рд╕реЗ рдЯрд╛рдЗрдк рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рд╣рдореЗрд╢рд╛ рдкрд░реНрдпрд╛рдкреНрдд рдкреНрд░рджрд░реНрд╢рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

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

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд▓рдЧрд╛рддрд╛рд░ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдПрдВ рдЬреИрд╕реЗ ImmutableJS рд╣рдореЗрд╢рд╛ рдХреБрдЫ рдСрдкрд░реЗрд╢рдиреЛрдВ рдореЗрдВ рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рдкреНрд░рджрд░реНрд╢рди рдХреА рдкреЗрд╢рдХрд╢ рдирд╣реАрдВ рдХрд░ рд░рд╣реА рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рдПрдХ рдмрдбрд╝реА рд╕реВрдЪреА рдореЗрдВ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕реВрдЪрдХрд╛рдВрдХ рдореЗрдВ рдПрдХ рдЖрдЗрдЯрдо рдЬреЛрдбрд╝рдирд╛ (рдореЗрд░реЗ рдЕрдиреБрднрд╡ рдХреЛ рдпрд╣рд╛рдВ рдмрдбрд╝реА рд╕реВрдЪреА рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рджреЗрдЦреЗрдВ)

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


рдореИрдВ @jquense рд╕реЗ рднреА рд╕рд╣рдордд

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

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

рд▓реЗрдХрд┐рди рдпрд╣ рднреА рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╕рднреА рд░рд╛рдЬреНрдп рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред рдХрднреА-рдХрднреА рд╣рдо рдореМрдЬреВрджрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдШреЛрд╖рдгрд╛рддреНрдордХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рдХрдард┐рди рд╣реЛрддрд╛ рд╣реИред рдХреБрдЫ рд░рд╛рдЬреНрдп рднреА рдПрдХ рдХреБрд╢рд▓ рддрд░реАрдХреЗ рд╕реЗ рд╕реНрдЯреЛрд░ рдХреЛ рд░рд┐рдбрдХреНрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдЙрдВрдЯ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:

  • рдкрд╛рда рдЗрдирдкреБрдЯ
  • рд╕реНрдХреНрд░реЙрд▓ рд╕реНрдерд┐рддрд┐
  • рд╡реНрдпреВрдкреЛрд░реНрдЯ рдХрд╛ рдЖрдХрд╛рд░
  • рдорд╛рдЙрд╕ рдХреА рд╕реНрдерд┐рддрд┐
  • рджреЗрдЦрднрд╛рд▓ рдХреА рд╕реНрдерд┐рддрд┐ / рдЪрдпрди
  • рдХреИрдирд╡рд╕ dataUrls
  • рдЕрдкрд░рд┐рд╣рд╛рд░реНрдп рдЕрд╡рд╕реНрдерд╛
  • ...

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

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

рдЖрдкрдХрд╛ рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж! рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╕реБрдирдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред

рд╡реИрд╕реЗ, рдореИрдВ рд╣рд░ рдХрд┐рд╕реА рдХреЛ рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░рддрд╛ рд╣реВрдВ рдЬреЛ рдЗрд╕ рдЪрд░реНрдЪрд╛ рдореЗрдВ рдпреЛрдЧрджрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рд╡реЗ Redux рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕ рдмрд╛рдд рдХрд╛ рдЕрдВрджрд╛рдЬрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рджрд╛рдпрд░реЗ рдХреЛ рд╕рдордЭрдирд╛ рдЖрд╕рд╛рди рд╣реЛред

рдУрдо рдФрд░ рд░рд┐рдбрдХреНрд╕ рдФрд░ рдЕрдиреНрдп рдПрдХрд▓ рд░рд╛рдЬреНрдп рдкрд░рдорд╛рдгреБ рджреЗрдпрддрд╛рдУрдВ рдЬреИрд╕реЗ рдХрдард┐рди рдкреНрд░рд╢реНрди рдмреА / рд╕реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреА рдЕрдкрдиреА рддрд░рд╣, рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдбрд╛рдЙрдирд╕рд╛рдЗрдб рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИред рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдмрд╛рдзрд╛ рдХреЗ рдмрд┐рдирд╛, рдФрд░ gated, рдирд┐рдпрдВрддреНрд░рд┐рдд рдПрдХ рдПрдХрд▓ рд░рд╛рдЬреНрдп рдкрд░рдорд╛рдгреБ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдкрдХреЗ рд╕рднреА рдбреЗрдЯрд╛ рдХреЛ window (рдЬрд┐рд╕рдореЗрдВ рдбрд╛рдЙрдирд╕рд╛рдЗрдб рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЬреНрдЮрд╛рдд рд╣реИрдВ) рдХреЛ рд╕рдВрд▓рдЧреНрди рдХрд░рдиреЗ рдХреЗ рд╡рд┐рдкрд░реАрдд рдмрд┐рд▓реНрдХреБрд▓ рднреА рдирд╣реАрдВ рд╣реИред

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

рдЗрди рдбрд╛рдЙрдирд╕рд╛рдЗрдбреНрд╕ рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдирд┐рд╖реЗрдзрд╛рддреНрдордХ рдирд╣реАрдВ рд╣реИ :)

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

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

рдЬрд┐рд╕ рдЪреАрдЬрд╝ рд╕реЗ рдореИрдВрдиреЗ рд╕рдВрдШрд░реНрд╖ рдХрд┐рдпрд╛ рд╣реИ, рдПрдХ рдирдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ Redux рдореЗрдВ рдЪрд░рдо (imho) рдХреЛрдбрд┐рдВрдЧ рд╢реИрд▓реА рдореЗрдВ рдмрджрд▓рд╛рд╡, рдФрд░ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рд╡реИрдЪрд╛рд░рд┐рдХ рдкрд░рд┐рд╡рд░реНрддрди рджреЛрдиреЛрдВ рдХреЛ рджреВрд░ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ; рдпрд╣ рдЕрднреА рднреА рдереЛрдбрд╝рд╛ рдХрдард┐рди рд╣реИ, рдПрдХ рдорд╣реАрдиреЗ рдореЗрдВ рдФрд░ рдЗрд╕рдореЗрдВ рдЧреЛрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ; рдореИрдВ рдХреЙрдиреНрд╕реЗрдкреНрдЯреНрд╕ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП https://github.com/ngrx/store рдореЗрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХ рдкрд░рд┐рдЪрд┐рдд рд╢реИрд▓реА / рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рд╕рд╛рде рдФрд░ рдмрд╛рдХреА рдврд╛рдВрдЪрд╛ рдирд┐рд╣рд┐рдд / рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдХреБрдЫ рдХреЗ рд▓рд┐рдП, рдПрдХ рдврд╛рдВрдЪрд╛ рдПрдХ рдмреИрд╕рд╛рдЦреА рд╣реИ; рд▓реЗрдХрд┐рди рд╣рдордореЗрдВ рд╕реЗ рдХреБрдЫ рдХреЛ рдЗрдирдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ; рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рдЕрдкрдиреЗ рдЦреЗрд▓ рдореЗрдВ рд╕рдмрд╕реЗ рдКрдкрд░ рд╣реЛрдВрдЧреЗ, рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рдордЬрдмреВрдд рдордЬрдмреВрдд рд░рд╛рдп рд╣реЛрдЧреА, рдЗрд╕рд▓рд┐рдП рдПрдХ рдлреНрд░реЗрдорд╡рд░реНрдХ 'рдЕрдВрдзреЗрд░реЗ рдореЗрдВ рд▓рдбрд╝рдЦрдбрд╝рд╛рдиреЗ рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИ, рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ?' рддреЛ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рдмрд┐рдВрджреБ рд╣реИ, рдПрдХ рдордзреНрдп рд╕реНрддрд░, рдордзреНрдпрдо рдЖрдпреБ рд╡рд░реНрдЧ рдХреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдирдИ рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЗ рд▓рд┐рдП :)

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

рдЖрдкрдХреА рдЧрд▓рддреА рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдПрдХ рд╕рдорд╕реНрдпрд╛ рдореБрдЭреЗ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдирд╛ рдкрд╕рдВрдж рд╣реИ :)

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рд╕рдмрд╕реЗ рдмрдбрд╝рд╛ рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдХрд╛рд░реНрдпреЛрдВ, рдЙрджрд╛рд╣рд░рдгреЛрдВ рдпрд╛ рд╡рд╛рджреЛрдВ рдЬреИрд╕реЗ рдХрд┐рд╕реА рднреА рдЧреИрд░-рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ рдЖрдЗрдЯрдо рдХреЛ рдХрд╣рд╛рдВ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП? рджреВрд╕рд░реА рд░рд╛рдд Reactiflux рдореЗрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛ рдФрд░ рдХреЛрдИ рдЕрдЪреНрдЫреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рдорд┐рд▓реАред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдмрд╕ рдХрд┐рд╕реА рдХреЛ рджреЗрдЦрд╛ http://stackoverflow.com/questions/35325195/should-i-store-function-references-in-redux-store ред

рдХрдИ рд╕реНрдЯреЛрд░ рдХреЗ рд▓рд┐рдП рдХреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ (рдзреНрдпрд╛рди рд░рдЦреЗрдВ, рдпрд╣ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИ рдЬреЛ рдореИрдВ рд╕реЛрдЪ рд╕рдХрддрд╛ рдерд╛):

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

рдЗрдХрдЯреНрдард╛, рдЖрдк рдХреБрдЫ рдирд┐рдпрдореЛрдВ рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рдХрд░рдХреЗ рдФрд░ рд░рд┐рдПрдХреНрдЯ рдХреЗ рд╕рдВрджрд░реНрдн рдЬреИрд╕реА рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдкрд░ рдЙрди рджреБрдХрд╛рдиреЛрдВ рдХреЗ рдкреНрд░рдЪрд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рд╛рд╡рдзрд╛рди рд░рд╣рдиреЗ рдХреЗ рджреНрд╡рд╛рд░рд╛ Redux рдореЗрдВ рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рд░реВрдкрд░реЗрдЦрд╛ рдХреЗ рд╕рд╛рде рдЖрд╕рд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдХрдИ рд░рд╛рдЬреНрдп рдкрд░рдорд╛рдгреБрдУрдВ рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИред

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

рдФрд░ рд╣рд╛рдБ рд╣рдо рдЕрднреА рднреА Dux рд╕реЗ рдХреБрдЫ рдирд┐рдпрдореЛрдВ рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рдХрд░рддреЗ рд╣реБрдП рдХрдИ рджреБрдХрд╛рдиреЛрдВ рдХреЗ рд╕рд╛рде Redux рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬреИрд╕рд╛ рдХрд┐ react-redux рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рдХреНрдпреЛрдВрдХрд┐ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╣рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рджреБрдХрд╛рдиреЛрдВ рд╕реЗ рдбреЗрдЯрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╣реИ рдПрдХрд▓ рджреБрдХрд╛рди рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ)

Redux рдореВрд▓ рд░реВрдк рд╕реЗ рдЗрд╡реЗрдВрдЯ-рд╕реЛрд░реНрд╕рд┐рдВрдЧ рд╣реИ рдЬрд╣рд╛рдВ рдЙрдкрднреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХрд▓ рдкреНрд░рдХреНрд╖реЗрдкрдг рд╣реИред

рд╡рд┐рддрд░рд┐рдд рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдореЗрдВ, рдЖрдо рддреМрд░ рдкрд░ рдПрдХ рдИрд╡реЗрдВрдЯ рд▓реЙрдЧ рд╣реЛрддрд╛ рд╣реИ (рдЬреИрд╕реЗ рдХрд╛рдлреНрдХрд╛), рдФрд░ рдХрдИ рдЙрдкрднреЛрдХреНрддрд╛ рдЬреЛ рдЗрд╕ рд▓реЙрдЧ рдХреЛ рдХрдИ рдбреЗрдЯрд╛рдмреЗрд╕ / рд╕реНрдЯреЛрд░ рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ / рдХрдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╡рд┐рднрд┐рдиреНрди рд╕рд░реНрд╡рд░реЛрдВ рдкрд░ рд╣реЛрд╕реНрдЯ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ (рдЖрдорддреМрд░ рдкрд░, рдПрдХ рдбреАрдмреА рдкреНрд░рддрд┐рдХреГрддрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд░рд┐рдбреНрдпреВрд╕рд░ рд╣реИ)ред рддреЛ рдПрдХ рд╡рд┐рддрд░рд┐рдд рджреБрдирд┐рдпрд╛ рдореЗрдВ рд▓реЛрдб рдФрд░ рдореЗрдореЛрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣реЛрддрд╛ рд╣реИ ... рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ Redux рдореЗрдВ рдЕрдЧрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕реИрдХрдбрд╝реЛрдВ рд╡рд┐рдЬреЗрдЯ рд╣реИрдВ, рдЬрд┐рдирдХреА рд╕рднреА рдореЗрдВ рдЕрдкрдиреА рд╕реНрдерд╛рдиреАрдп рд╕реНрдерд┐рддрд┐ рд╣реИ, рдпрд╣ рд╕рдм рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЪрд▓рддрд╛ рд╣реИ, рдФрд░ рд╣рд░ рд░рд╛рдЬреНрдп рдкрд░рд┐рд╡рд░реНрддрди рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг рдХреБрдЫ рдУрд╡рд░рд╣реЗрдб рд╣реЛрддрд╛ рд╣реИ рдбреЗрдЯрд╛ рдЕрдкрдбреЗрдЯред

рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдпрд╣ рдУрд╡рд░рд╣реЗрдб рдПрдХ рдмрдбрд╝реА рдмрд╛рдд рдирд╣реАрдВ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЬрдм рдЯреЗрдХреНрд╕реНрдЯ рдЗрдирдкреБрдЯ рдмрдврд╝рддреЗ рд╣реБрдП рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рд░рд╛рдЬреНрдп рдЖрдХрд╛рд░ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдзреАрдореА рдореЛрдмрд╛рдЗрд▓ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рддреЗрдЬреА рд╕реЗ рдЯрд╛рдЗрдк рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рд╣рдореЗрд╢рд╛ рдкрд░реНрдпрд╛рдкреНрдд рдкреНрд░рджрд░реНрд╢рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

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

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд▓рдЧрд╛рддрд╛рд░ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдПрдВ рдЬреИрд╕реЗ ImmutableJS рд╣рдореЗрд╢рд╛ рдХреБрдЫ рдСрдкрд░реЗрд╢рдиреЛрдВ рдореЗрдВ рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рдкреНрд░рджрд░реНрд╢рди рдХреА рдкреЗрд╢рдХрд╢ рдирд╣реАрдВ рдХрд░ рд░рд╣реА рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рдПрдХ рдмрдбрд╝реА рд╕реВрдЪреА рдореЗрдВ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕реВрдЪрдХрд╛рдВрдХ рдореЗрдВ рдПрдХ рдЖрдЗрдЯрдо рдЬреЛрдбрд╝рдирд╛ (рдореЗрд░реЗ рдЕрдиреБрднрд╡ рдХреЛ рдпрд╣рд╛рдВ рдмрдбрд╝реА рд╕реВрдЪреА рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рджреЗрдЦреЗрдВ)

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


рдореИрдВ @jquense рд╕реЗ рднреА рд╕рд╣рдордд

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

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

рд▓реЗрдХрд┐рди рдпрд╣ рднреА рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╕рднреА рд░рд╛рдЬреНрдп рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред рдХрднреА-рдХрднреА рд╣рдо рдореМрдЬреВрджрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдШреЛрд╖рдгрд╛рддреНрдордХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рдХрдард┐рди рд╣реЛрддрд╛ рд╣реИред рдХреБрдЫ рд░рд╛рдЬреНрдп рднреА рдПрдХ рдХреБрд╢рд▓ рддрд░реАрдХреЗ рд╕реЗ рд╕реНрдЯреЛрд░ рдХреЛ рд░рд┐рдбрдХреНрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдЙрдВрдЯ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:

  • рдкрд╛рда рдЗрдирдкреБрдЯ
  • рд╕реНрдХреНрд░реЙрд▓ рд╕реНрдерд┐рддрд┐
  • рд╡реНрдпреВрдкреЛрд░реНрдЯ рдХрд╛ рдЖрдХрд╛рд░
  • рдорд╛рдЙрд╕ рдХреА рд╕реНрдерд┐рддрд┐
  • рджреЗрдЦрднрд╛рд▓ рдХреА рд╕реНрдерд┐рддрд┐ / рдЪрдпрди
  • рдХреИрдирд╡рд╕ dataUrls
  • рдЕрдкрд░рд┐рд╣рд╛рд░реНрдп рдЕрд╡рд╕реНрдерд╛
  • ...

рдпрд╣ рд╕рд╡рд╛рд▓ рдореИрдВрдиреЗ рдЕрднреА SO рдкрд░ рджреЗрдЦрд╛ рдерд╛:

http://stackoverflow.com/questions/35328056/react-redux-should-all-component-states-be-kept-in-redux-store

Echos рдХреБрдЫ рднреНрд░рдо рдореИрдВрдиреЗ UI рд╕реНрдерд┐рддрд┐ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рджреЗрдЦрд╛ рд╣реИ, рдФрд░ рдХреНрдпрд╛ UI рд░рд╛рдЬреНрдп рдШрдЯрдХ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рд╕реНрдЯреЛрд░ рдореЗрдВ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред # 1287 рдЗрд╕ рд╕рд╡рд╛рд▓ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЬрд╡рд╛рдм рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╢реБрд░реВ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдФрд░ рдмрд╣рд╕ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдпрд╣ рдПрдХ рдмрд╛рдзрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ рдпрджрд┐ рдЖрдк рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ https://github.com/ericelliott/react-pure-component-starter рдЬрд┐рд╕рдореЗрдВ рд╣рд░ рдШрдЯрдХ рд╢реБрджреНрдз рд╣реИ рдФрд░ рдЗрд╕рдХреА рдЕрдкрдиреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдПрдХ рдХрд╣рдирд╛ рдирд╣реАрдВ рд╣реИ ред

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

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

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

рдЙрд╕ рдиреЗ рдХрд╣рд╛, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рдмрд╕реЗ рдореБрд╢реНрдХрд┐рд▓ рд╣рд┐рд╕реНрд╕рд╛ рдПрдиреАрдореЗрд╢рди рд░рд╛рдЬреНрдп рдореЗрдВ рдмрд╛рдВрдз рд░рд╣рд╛ рд╣реИред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рдПрдиреАрдореЗрд╢рди рд░рд╛рдЬреНрдп рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдХреЛ UI рд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдПрдиреАрдореЗрд╢рди рдХреЗ рдХреБрдЫ рдХрд╛рд░рдг Redux рдХреЗ рд▓рд┐рдП рдЕрдЬреАрдм рд╣реИрдВ:

  • рдПрдиреАрдореЗрд╢рди рдбреЗрдЯрд╛ рдЕрдХреНрд╕рд░ рдмрджрд▓рддрд╛ рд╣реИ
  • рдПрдирд┐рдореЗрд╢рди-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреНрд░рд┐рдпрд╛рдПрдВ рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдЗрддрд┐рд╣рд╛рд╕ рдХреЛ рдкреНрд░рджреВрд╖рд┐рдд рдХрд░рддреА рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рд╕рд╛рд░реНрдердХ рддрд░реАрдХреЗ рд╕реЗ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рд░реЛрд▓-рдмреИрдХ рдХрд░рдирд╛ рдХрдард┐рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ
  • рдЕрдЧрд░ рдХрдИ рдШрдЯрдХ-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдПрдирд┐рдореЗрд╢рди рд╣реИрдВ, рддреЛ Redux рд╕реНрдЯреЗрдЯ рдЯреНрд░реА, рдХрдВрдкреЛрдиреЗрдВрдЯ рдЯреНрд░реА рдХреЛ рдорд┐рд░рд░ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ
  • рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдмреБрдирд┐рдпрд╛рджреА рдПрдиреАрдореЗрд╢рди рд░рд╛рдЬреНрдп рдЬреИрд╕реЗ animationStarted рдпрд╛ animationStopped рдЕрдкрдиреЗ UI рдкрд░ рдпреБрдЧрд▓ рд░рд╛рдЬреНрдп рдХреЗ рд▓рд┐рдП рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред

рджреВрд╕рд░реА рдУрд░, Redux рд░рд╛рдЬреНрдп рдХреЗ рдкреЗрдбрд╝ рдХреЗ рдмрд╛рд╣рд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдПрдиреАрдореЗрд╢рди рд░рд╛рдЬреНрдп рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЪреБрдиреМрддрд┐рдпрд╛рдВ рд╣реИрдВред

рдпрджрд┐ рдЖрдк DOM рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХрд░рдХреЗ рдЦреБрдж рдХреЛ рдПрдирд┐рдореЗрд╢рди рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╕рд╛рдорд╛рди рджреЗрдЦрдирд╛ рд╣реЛрдЧрд╛:

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

рдФрд░ рдЕрдЧрд░ рдЖрдк рд╡рд░реНрдЪреБрдЕрд▓-рдбреЛрдо рдХреЛ рд╕рднреА DOM рдореИрдирд┐рдкреБрд▓реЗрд╢рди (рдЬреЛ рдЖрдкрдХреЛ рдЪрд╛рд╣рд┐рдП!) рдХрд╛ рдЦреНрдпрд╛рд▓ рд░рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди Redux рдореЗрдВ рдПрдиреАрдореЗрд╢рди рд╕реНрдЯреЗрдЯ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП, рдЖрдк рдЗрди рдЬреИрд╕реА рдХрдард┐рди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ:

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

рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдЧрддрд┐ рдЬреИрд╕реА рднрдпрд╛рдирдХ рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рд╣реИрдВ рдЬреЛ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдмрд╣реБрдд рдЖрдЧреЗ рдмрдврд╝рд╛рддреА рд╣реИрдВ _for React_, рд▓реЗрдХрд┐рди Redux рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдЕрдирдиреНрдп рдирд╣реАрдВ рд╣реИред рдФрд░ рди рд╣реА рдпрд╣ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ - рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рдЕрдкрдиреА рдЦреБрдж рдХреА рджреГрд╢реНрдп рдкрд░рдд рд▓рд╛ рд░рд╣реЗ рд╣реИрдВ рдФрд░ Redux рдХреЗ рд╕рд╛рде рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдЬреЛ рдЙрддреНрд╕реБрдХ рд╣реИ, рдореИрдВрдиреЗ Redux + рд╡рд░реНрдЪреБрдЕрд▓-рдбреЛрдо рдХреЗ рд▓рд┐рдП рдЬреЛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рдкрд╛рдпрд╛ рд╣реИ, рд╡рд╣ рд╣реИ рджреЛ рд░рд╛рдЬреНрдп рдкрд░рдорд╛рдгреБрдУрдВ рдХреЛ рд░рдЦрдирд╛: Redux рдХреЛрд░ рдПрдкреНрд▓реАрдХреЗрд╢рди рд╕реНрдЯреЗрдЯ рдХреЛ рдмрдирд╛рдП рд░рдЦрддрд╛ рд╣реИ, рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдЬрд╡рд╛рдм рдореЗрдВ рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЦреНрдп рддрд░реНрдХ рд░рдЦрддрд╛ рд╣реИ, рдЖрджрд┐ред рдПрдХ рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╡рд╕реНрддреБ рд╣реИ рдЬреЛ рдПрдиреАрдореЗрд╢рди рд╕реНрдерд┐рддрд┐ рд░рдЦрддреА рд╣реИ (рдореИрдВ mobservable рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ)ред рдлрд┐рд░ рдЪрд╛рд▓ Redux рд░рд╛рдЬреНрдп рдкрд░рд┐рд╡рд░реНрддрди _and_ рдПрдиреАрдореЗрд╢рди рд░рд╛рдЬреНрдп рдкрд░рд┐рд╡рд░реНрддрди рджреЛрдиреЛрдВ рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ, рдФрд░ UI рдХреЛ рджреЛрдиреЛрдВ рдХреЗ рдХрд╛рд░реНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ:

/* Patch h for jsx/vdom to convert <App /> to App() */
import h from './h'
import { diff, patch, create } from 'virtual-dom'
import { createStore } from 'redux'
import { observable, autorun } from 'mobservable'
import TWEEN from 'tween.js'
import rootReducer from './reducers'
import { addCard } from './actions'
import App from './containers/App'

// Redux state
const store = createStore()

// Create vdom tree
let tree = render(store.getState())
let rootNode = create(tree)
document.body.appendChild(rootNode)

// Animation observable
let animationState = observable({
  opacity: 0
})

// Update document when Redux state 
store.subscribe(function () {
  // ... anything you need to do in response to Redux state changes
  update()
})

// Update document when animation state changes
autorun(update)

// Perform document update with current state
function update () {
  const state = store.getState()
  let newTree = render(state, animationState)
  let patches = diff(tree, newTree)
  rootNode = patch(rootNode, patches)
  tree = newTree
}

// UI is a function of current state (and animation!)
function render (state, animation = {}) {
  return (
    <App {...state} animation={animationState} />
  )
}

// Do some animations
function animationLoop (time) {
  window.requestAnimationFrame(animationLoop)
  TWEEN.update(time)
}
animationLoop()

new TWEEN.Tween(animationState)
      .to({ opacity: 100 }, 300)
      .start()

// Or when you dispatch an action, also kick off some animation changes...
store.dispatch(addCard())
/* etc... */

рдорд╣рд╛рди рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЖрдк рд╕рднреА рдХрд╛ рдзрдиреНрдпрд╡рд╛рдж! рдЙрдиреНрд╣реЗрдВ рдЖрдиреЗ рджреЛред

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

@taggartbg

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

рдХреНрдпрд╛ рдЖрдк рдЕрдкрдиреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХрд╛ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдкреИрджрд╛ рдХрд░реЗрдВрдЧреЗ? рдпрд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд░рд╛рдЬреНрдп рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдЕрд▓рдЧ рдврдВрдЧ рд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╕рд░рд▓ рддрд░реАрдХрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЧрд╛рдпрдм рд╣реИрдВред рдПрдХ рд╣реА рд░рд╛рдЬреНрдп рдЖрдХреГрддрд┐ рдХреЗ рд╕рд╛рде рд╕рд╛рдорд╛рдиреНрдп рдХрдИ рд╢рд╛рдЦрд╛рдУрдВ рдореЗрдВ рд▓реЗрдХрд┐рди рд╡рд┐рднрд┐рдиреНрди рд░рд┐рдбреНрдпреВрд╕рд░ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдмрдВрдзрд┐рдд рдПрдХ рд╡рд┐рд░реЛрдзреА рдкреИрдЯрд░реНрди рд╣реИред

@istarkov

Reducers рдХреЗ рдмреАрдЪ рд░рд╛рдЬреНрдп рдХреБрдВрдЬреА рдЯрдХрд░рд╛рд╡ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдмрдврд╝ рдЬрд╛рддреА рд╣реИред

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

@gaearon @istarkov : рд╢рд╛рдпрдж рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рд╡рд┐рднрд┐рдиреНрди рдкреНрд▓рдЧрдЗрдиреНрд╕ рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕рдорд╛рди рд╕реНрддрд░ рдХреЗ рдирд╛рдорд╕реНрдерд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реЛ рд╕рдХрддрд╛ рд╣реИ? рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдП рдХреЛ "myState" рдирд╛рдо рдХреА рдПрдХ рд╢реАрд░реНрд╖ рдХреБрдВрдЬреА рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдмреА рдЖрджрд┐ред

рд╣рд╛рдБ, рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рдмрд┐рдВрджреБ рд╣реИ, рднрд▓реЗ рд╣реА рдпрд╣ @istarkov рдХрд╛ рдорддрд▓рдм рди рд╣реЛред (рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ред) рд╕рд╛рдорд╛рдиреНрдп рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рдкреЗрдбрд╝ рдореЗрдВ рдХрд╣реАрдВ рднреА reducer рдорд╛рдЙрдВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддрд░реАрдХрд╛ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рд╣реИред

@gaearon

рдХреНрдпрд╛ рдЖрдк рдЕрдкрдиреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХрд╛ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдкреИрджрд╛ рдХрд░реЗрдВрдЧреЗ? рдпрд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд░рд╛рдЬреНрдп рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдЕрд▓рдЧ рдврдВрдЧ рд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╕рд░рд▓ рддрд░реАрдХрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЧрд╛рдпрдм рд╣реИрдВред рдПрдХ рд╣реА рд░рд╛рдЬреНрдп рдЖрдХреГрддрд┐ рдХреЗ рд╕рд╛рде рд╕рд╛рдорд╛рдиреНрдп рдХрдИ рд╢рд╛рдЦрд╛рдУрдВ рдореЗрдВ рд▓реЗрдХрд┐рди рд╡рд┐рднрд┐рдиреНрди рд░рд┐рдбреНрдпреВрд╕рд░ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдмрдВрдзрд┐рдд рдПрдХ рд╡рд┐рд░реЛрдзреА рдкреИрдЯрд░реНрди рд╣реИред

рдореИрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЦреБрд╢ рд╣реВрдБ! рдореИрдВ рдРрд╕рд╛ рдХрд░реВрдБрдЧрд╛ рдЬрдм рдореБрдЭреЗ рдПрдХ рдкрд▓ рдорд┐рд▓реЗрдЧрд╛ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдПрдВрдЯреАрдкреИрдЯрд░реНрди рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдЙрди рд╢рд╛рдЦрд╛рдУрдВ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдХрд▓, рд╕рд╛рдЭрд╛, Reducer рд╣реИред рдмрд╣рд░рд╣рд╛рд▓, рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧ рд░рд╣рд╛ рд╣реИ рдХрд┐ рд░реЗрдбрдХреНрд╕ рдЬреЛ рдкреНрд░рддрд┐рдорд╛рди рдЙрдкрд▓рдмреНрдз рдХрд░рд╛ рд░рд╣рд╛ рд╣реИ, рд╡рд╣ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд░рд╛рдЬреНрдп рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдорд╛рди рд╢рд╛рдЦрд╛рдУрдВ рдХреЛ рдХреНрд░рдордмрджреНрдз / рдбрд┐рд╕рд░рд╕рд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╣реА рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рд╕реЗ рджреВрд░ рдирд╣реАрдВ рд╣реИред рдореИрдВ рдпрд╣ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рдХрд┐ рдпрд╣ рдХреБрдЫ рдХреБрдВрдЬреА рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╢рд╛рдЦрд╛рдУрдВ рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЧреНрд░рд╣рдг рдХрд┐рдП рдЧрдП рддрд░реНрдХ рдХреЗ рд╕рд╛рде рдкреБрди: рдЖрдХрд╛рд░ рдЬреИрд╕рд╛ рдХреБрдЫ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд┐рдбрдХреНрд╕ рдХреЗ рд▓реЛрдХрд╛рдЪрд╛рд░ рдХреЗ рдЦрд┐рд▓рд╛рдл рдХреНрдпреЛрдВ рд╣реЛрдЧрд╛ред

рдореБрдЭреЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдСрдл-рдереНрд░реЗрдб рдЪреИрдЯ рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреА, рдореИрдВ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЧрд▓рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реВрдВред

@taggartbg : рдЖрдкрдХрд╛ рдХреЛрдб рдпрд╣рд╛рдВ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ, рдпрд╣ рдЬрд╛рдиреЗ рдмрд┐рдирд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмреЛрд▓рдирд╛ред рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрдиреЗ рд╡рд╛рд▓реЗ рд░рд╛рдЬреНрдп рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?

{ groupedData : { first : {a : 1, b : 2}, second : {a : 3, b : 4}, third : {a : 5, b, 6} }

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк reducer рдХреА рдУрд░ рд╕реЗ рдПрдХ рд╣реА reducer рд╕рдорд╛рд░реЛрд╣ рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рддрд┐ рд╕рдореВрд╣ рдЖрдИрдбреА рдХреБрдВрдЬреА рд▓реЗрддрд╛ рд╣реИ рдХреЗ рд╕рд╛рде рд╕реМрджрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдХреНрдпрд╛ рдЖрдкрдиреЗ https://github.com/erikras/multireducer , https://github.com/lapanoid/redux-delegator , https://github.com/reducks/redux-multiplex , рдпрд╛ https://github.com/dexbol/redux-register?

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреБрдирд░реНрд╡рд┐рдХреНрд░рдп рдкрдХреНрд╖ рдкрд░, рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рд░рд┐рдПрдХреНрдЯ-рд░реЗрдбрдХреНрд╕ рдЕрдм рдкреНрд░рддрд┐-рдШрдЯрдХ рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рд╕реЗ рдЙрди рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдореЗрдВ рд╕реБрдзрд╛рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдЖрдк рдШрдЯрдХ рд╕рд╣рд╛рд░рд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЪрдпрди рдХрд░ рд░рд╣реЗ рд╣реИрдВред

@gaearon

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

рдбреЙрдХреНрд╕ рдФрд░ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдкрдврд╝рдиреЗ рд╡рд╛рд▓реЗ рдПрдХ рд░рд┐рдПрдХреНрдЯрд░ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрдирдХреЗ рдирд┐рдкрдЯрд╛рди рдореЗрдВ рдпрд╣ рдЕрд▓реНрдкрдХрд╛рд▓рд┐рдХ рд╕реНрдерд┐рддрд┐ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдЬрдм Redux рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рддреЛ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдзреНрдпрд╛рди рдореЗрдВ рд╣реИред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рд░рд┐рдПрдХреНрдЯрд░ рдХреЗ рд╕рд╛рде рдПрдХ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдмрд╣реБрдд рдХрдо рдпрд╛ рдХреЛрдИ рдЕрдиреБрднрд╡ рдирд╣реАрдВ рд╣реИ рдЬреЛ UI рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд▓реЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ Redux рдореЗрдВ рдХреМрди рд╕рд╛ рд░рд╛рдЬреНрдп рд╣реИред рдореИрдВрдиреЗ рдЕрдм рдХрдИ рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдБ рдХреА рд╣реИрдВ рдЬрд╣рд╛рдБ рдкрд╣рд▓реЗ Redux рдФрд░ рд╡рд░реНрдЪреБрдЕрд▓-рдбреЛрдо рдкрд░реНрдпрд╛рдкреНрдд рдереЗ, рд▓реЗрдХрд┐рди рдЬреИрд╕реЗ-рдЬреИрд╕реЗ рдЖрд╡реЗрджрди рдЬрдЯрд┐рд▓рддрд╛ рдореЗрдВ рдмрдврд╝рддрд╛ рдЧрдпрд╛ рдпрд╣ рдЕрдиреНрдп "рдЕрд▓реНрдкрдХрд╛рд▓рд┐рдХ рд░рд╛рдЬреНрдп рдЕрдореВрд░реНрддрддрд╛" рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рдЧрдпрд╛ред рдпрд╣ рдкрд╣рд▓реА рдмрд╛рд░ рдирд╣реАрдВ рд╣реИ рдЬрдм рдЖрдк рдХреБрдЫ рдмреБрдирд┐рдпрд╛рджреА рдПрдиреАрдореЗрд╢рди рдЭрдВрдбреЗ рдХреЗ рд╕рд╛рде рдПрдиреАрдореЗрд╢рди reducer рдореЗрдВ рдкрд╣рд▓реА рдмрд╛рд░ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдмрд╛рдж рдореЗрдВ рдХрд╛рдлреА рджрд░реНрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

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

EDIT: рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рд╢реАрд░реНрд╖рдХ "рдПрдХ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдкрд░рдорд╛рдгреБ рдореЗрдВ рдЕрдкрдиреЗ рд╕рднреА рд░рд╛рдЬреНрдп рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рдиреБрдХрд╕рд╛рди рдХреНрдпрд╛ рд╣реИрдВ?" рдпрд╣ "рдПрдХ рдПрдХрд▓ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдкрд░рдорд╛рдгреБ рдореЗрдВ рдЖрдкрдХрд╛ рд╕рднреА рд░рд╛рдЬреНрдп" рдареАрдХ рдЙрд╕реА рддрд░рд╣ рдХрд╛ рд╢рдмреНрдж рд╣реИ рдЬреЛ рд░реЗрдбрдХреНрд╕ рдХреЗ рдкреЗрдбрд╝ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЧрд▓рдд рдкреНрд░рдХрд╛рд░ рдХреЗ рд░рд╛рдЬреНрдп рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ рдЬрд╛рд▓ рд╕реЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдмрдЪрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд▓реЗрдЦрди рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реИред

@gaearon рд╣рдордиреЗ рдПрдХ рдПрдХрд▓ рдкрд░рдорд╛рдгреБ рд░рд╛рдЬреНрдп рдмрдирд╛рдо рдкрд┐рдкрд┐рдВрдЧ рдХреЗ рдмреАрдЪ рд╡рд╛рд╕реНрддреБ рдЕрдВрддрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ Cycle.js рдкрд░ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рддрдЪреАрдд рдХреАред рдпрд╣рд╛рдБ ред

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

рдЪреВрдБрдХрд┐ Cycle рдореЗрдВ рд╕рдм рдХреБрдЫ рдПрдХ рдСрдмреНрдЬрд░реНрд╡реЗрдмрд▓ рд╣реИ, рдореБрдЭреЗ рдПрдХ рдорд╛рд░реНрдЧ рдкрд░рд┐рд╡рд░реНрддрди рд╕реЗ рджреВрд╕рд░реЗ рдореЗрдВ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╛рдЬреНрдп рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдХрдард┐рдирд╛рдИ рд╣реЛ рд░рд╣реА рдереАред рдпрд╣ рд░рд╛рдЬреНрдп рдПрдХ рдЧреНрд░рд╛рд╣рдХ рдирд╣реАрдВ рд╣реЛрдиреЗ рдПрдХ рдмрд╛рд░ рдПрдХ рдорд╛рд░реНрдЧ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдирдореВрджрд╛рд░ рдХреА рд╡рдЬрд╣ рд╕реЗ рдерд╛ рдФрд░, рд╕реЛрдЪрд╛ рдХрд┐ рдХреНрдпреЛрдВ рдПрдХ рдкрд░рдорд╛рдгреБ рд░рд╛рдЬреНрдп рдХреЛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рддреЛ рдХрд┐рд╕реА рднреА рд╕рдордп рд░рд╛рдЬреНрдп рдореЗрд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдмрджрд▓ рдпрд╣ рд╢реАрд░реНрд╖ рд╕реНрддрд░ рдХреА рджреБрдХрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рдкрд╕ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реЗрдВрдЧреЗ, рдХрд┐рд╕реА рднреА рдкрд╛рдЗрдкрд┐рдВрдЧ рджрд░рдХрд┐рдирд╛рд░ ( рднрдпрд╛рдирдХ рджреЗрдЦрдиреЗ рдпрд╣рд╛рдБ рдЪрд┐рддреНрд░ )ред

Cycle рдХреЗ рд╕рд╛рде рдХреНрдпреЛрдВрдХрд┐ рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯреНрд╕ рдбреНрд░рд╛рдЗрд╡рд░реНрд╕ рдореЗрдВ рд╣реЛрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдЖрдорддреМрд░ рдкрд░ рдЙрд╕ рд▓реЗрд╡рд▓ рдХреЛ рдЯреЙрдк рд▓реЗрд╡рд▓ рдбреНрд░рд╛рдЗрд╡рд░ рд╕реЗ рдХрдВрдкреЛрдиреЗрдВрдЯ рдФрд░ рдмреИрдХ рддрдХ рдмрдирд╛рдирд╛ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рдЙрд╕реЗ рдЫреЛрдбрд╝реЗрдВ рдФрд░ рд╕реАрдзреЗ рд╣реА рдЕрдк рдФрд░ рдЖрдЙрдЯ рдЯреВ рдж рдХрдВрдкреЛрдиреЗрдВрдЯреНрд╕ рд╕реБрдиреЗрдВред Redux рдХреЛ рдкреНрд░реЗрд░рдгрд╛ рдХреЗ рд╕реНрд░реЛрдд рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗ рд░рд╣рд╛ рдерд╛ред

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

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

рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рдХреНрд╖рдорд╛ рдХрд░реЗрдВ рдпрджрд┐ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдВрджрд░реНрдн рд╕реЗ рдмрд╛рд╣рд░ рд╣реИ, рддреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рдХреИрд╕реЗ рдПрдХ рдЕрд▓рдЧ рдкреНрд░рддрд┐рдорд╛рди рдПрдХ рд╕рдорд╛рди рдмрд╛рддрдЪреАрдд рдереА: рд╕реНрдорд╛рдЗрд▓реА:

@timdorr

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

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

@chicoxyzzy рд╕рдВрдмрдВрдзрд┐рдд: https://github.com/rackt/react-redux/issues/278

рдорд╣рд╛рди рдЪрд░реНрдЪрд╛!

рдореБрдЦреНрдп рд░реВрдк рд╕реЗ, рдореБрдЭреЗ рдХрдИ рдРрдкреНрд╕ / рдХрдВрдкреЛрдиреЗрдВрдЯреНрд╕ / рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЛ рдорд┐рд▓рд╛рдирд╛ рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд▓рдЧрддрд╛ рд╣реИред

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

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

рдореИрдВ рдПрдХ рд╕рдВрджреЗрд╢рд╡рд╛рд╣рдХ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬреЛ iMessage рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред рдЗрд╕рдХреА currentConversationId ред рдореЗрд░реА Messenger рдШрдЯрдХ рдореЗрдВ @connect(state => ({ currentConversationId: state.messenger.currentConversationId })) ред

рдореИрдВ рдЗрд╕ Messenger рдХреЛ рдПрдХ рдирдП рдРрдк рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдореБрдЭреЗ import { rootReducer as messengerRootReducer } from 'my-messenger' рджреЗрдиреЗ рд╣реЛрдВрдЧреЗ рдФрд░ рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП combineReducers({ messenger: messengerRootReducer }) рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред

рдЕрдм, рдЕрдЧрд░ рдореИрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдбреЗрдЯрд╛ рд╡рд╛рд▓реЗ рдРрдк рдореЗрдВ рджреЛ <Messenger> рдЗрдВрд╕реНрдЯреЗрдВрд╕ рд░рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рддреЛ рдореИрдВ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдореИрд╕реЗрдВрдЬрд░ рдШрдЯрдХ рдореЗрдВ state.messenger рд▓рд┐рдП рдмрд╛рдзреНрдп рд╣реВрдВред рдирд┐рд░реНрдорд╛рдгрд╕реНрдЯреЛрд░ рдХреЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реНрд▓рд╛рдЗрд╕ рдХреЗ рдЦрд┐рд▓рд╛рдл рдХрд╛рдо рдХрд░рдиреЗ рд╕реЗ рдореБрдЭреЗ рдПрдХ рдЕрдиреБрдХреВрд▓рд┐рдд @connect рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрдбрд╝реЗрдЧрд╛ред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдорд╛рди рд▓реЗрдВ рдХрд┐ рдпреБрдХреНрдд рдРрдк рдХрд╛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдПрдХреНрд╢рди рдирд╛рдо рд╣реИ рдЬреЛ my-messenger рдореЙрдбреНрдпреВрд▓ рдкрд░ рдореМрдЬреВрдж рд╣реИ, рдПрдХ рдЯрдХреНрдХрд░ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рд╣реИред рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдЬреНрдпрд╛рджрд╛рддрд░ redux plugins рдореЗрдВ @@router/UPDATE_LOCATION рдЬреИрд╕реЗ рдЙрдкрд╕рд░реНрдЧ рд╣реИрдВред

рдХреБрдЫ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ / рдкрд╛рдЧрд▓ рд╡рд┐рдЪрд╛рд░:

1

@connect рд╕реНрдЯреЛрд░ рдХреЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реНрд▓рд╛рдЗрд╕ рд╕реЗ рдЬреБрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЕрдкрдиреЗ рдРрдк рдореЗрдВ рдХрдИ <Messenger> s рд╢рд╛рдорд┐рд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдЬреЛ рдбреЗрдЯрд╛ рдХреЗ рдЕрдкрдиреЗ рд╕реНрд▓рд╛рдЗрд╕ рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ state.messenger[0] / state.messenger[1] ред рдпрд╣ <Messenger> рд▓рд┐рдП рдкрд╛рд░рджрд░реНрд╢реА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдЕрднреА рднреА state.messenger рд╕реЗ рдЬреБрдбрд╝рддрд╛ рд░рд╣рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпреБрдХреНрдд рдРрдк рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╕реНрд▓рд╛рдЗрд╕ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реИ:

@connect(state => ({ messengers: state.messengers }))
class App extends Component {
  render() {
    return (
      <div>
        {this.props.messengers.map(messenger =>
          <ProvideSlice slice={{messenger: messenger}}><Messenger /></ProvideSlice>
        }
      </div>
    )
  }
}

рд╡реИрд╢реНрд╡рд┐рдХ рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рд╕рдВрд╕реНрдерд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ, state.entities рдХреЛ рднреА рдореМрдЬреВрдж рд░рд╣рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдЗрд╕рд▓рд┐рдП рдХрдЯрд╛ рд╣реБрдЖ рд░рд╛рдЬреНрдп рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдкреВрд░реЗ рд░рд╛рдЬреНрдп рдХреЛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рдЙрдкрд╕реНрдерд┐рдд рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред ProvideSlice рдХреБрдЫ рд╕рдВрджрд░реНрдн рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ Messenger @connect рд╕реЗ рдкрдврд╝ рд╕рдХреЗрдВрдЧреЗред

рдПрдХ рдФрд░ рдореБрджреНрджрд╛ рдпрд╣ рд╣реИ рдХрд┐ <Messenger> рдореЗрдВ рдШрдЯрдХреЛрдВ рджреНрд╡рд╛рд░рд╛ рджрд╛рдЧреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдХрд╛рд░реНрд░рд╡рд╛рдЗрдпреЛрдВ рдХреЛ @connect ProvideSlice mapDispatchToProps рдХрд╛рд░реНрд░рд╡рд╛рдИ рд╣реЛред

2

store рдФрд░ reducer рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдХреЛ рдорд┐рд▓рд╛рдПрдВ, рддрд╛рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ reducer рднреА рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди рд╣реЛ рд╕рдХреЗред рд╕реНрдЯреЛрд░ рдПрдХ рдирд┐рдпрдВрддреНрд░рдХ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ рдЬрдмрдХрд┐ рдПрдХ reducer рдПрдХ рджреГрд╢реНрдп рд╣реИред рдпрджрд┐ рд╣рдо рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ "рд╕рдм рдХреБрдЫ рдПрдХ рдШрдЯрдХ рд╣реИ" (рдХреЛрдгреАрдп 1.x рдХреЗ рдирд┐рдпрдВрддреНрд░рдХ / рдирд┐рд░реНрджреЗрд╢ рдХреЗ рд╡рд┐рдкрд░реАрдд), рдпрд╣ рдШрдЯрдХреЛрдВ рдФрд░ рдЙрдирдХреЗ рд░рд╛рдЬреНрдп / рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди рд╣реЛрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗ рд╕рдХрддрд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рд╕рдВрд╕реНрдерд╛рдУрдВ (рдпрд╛рдиреА 'рд╡реИрд╢реНрд╡рд┐рдХ рд░рд╛рдЬреНрдп') рдЬреИрд╕реА рдЪреАрдЬрд╝реЛрдВ рдХреЗ рд▓рд┐рдП рд░рд┐рдПрдХреНрдЯ рдХреЗ рд╕рдВрджрд░реНрдн рдЬреИрд╕реА рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ (рдЬреИрд╕реЗ getState thunk ) / рдЬреБрдбрд╝реЗ рдШрдЯрдХреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реБрд▓рдн рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

@elado рдореИрдВрдиреЗ рдЕрдм рддрдХ рдЬреЛ рд╕рдмрд╕реЗ рдЪрддреБрд░ рд╡рд┐рдЪрд╛рд░ рджреЗрдЦрд╛ рд╣реИ, рд╡рд╣ "рдкреНрд░рджрд╛рддрд╛рдУрдВ" рдХреЗ рд╕рд╛рде рджрд┐рдорд╛рдЧ рдореЗрдВ рд░рдЦрдирд╛ рд╣реИ: https://medium.com/@timbur/react -automatic-redux-provider-and-replicators-c4e35a39f1

Thx @sompylasarред рдореИрдВ рд╕рдбрд╝рдХ рдкрд░ рдпрд╛рддреНрд░рд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЬрдм рдореБрдЭреЗ рдореМрдХрд╛ рдорд┐рд▓рддрд╛ рд╣реИ рддреЛ рдореИрдВ рдПрдХ рдФрд░ рд▓реЗрдЦ рд▓рд┐рдЦрдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВ, рдЬреЛ рдкреНрд░рджрд╛рддрд╛рдУрдВ рдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдФрд░ рд░рд┐рдбрдХреНрд╕ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдЙрдкрдпреБрдХреНрдд рд╣реИред рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрд░рд┐рдЪрд┐рдд рдХреЛрдИ рднреА рдЗрд╕реЗ рд╕рд░рд▓ / рдЖрд╕рд╛рди рдкрд╛рдЧрд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред :)

_Comment https://github.com/loggur/react-redux-provide/issues/8_ рдкрд░ рдЪрд▓рд╛ рдЧрдпрд╛

@gaearon рдЕрднреА рднреА рдЗрд╕ рдкрд░ рдЕрдкрдиреЗ рд╡рд┐рдЪрд╛рд░ рд╕реБрдирдирд╛ рдкрд╕рдВрдж рдХрд░реЗрдВрдЧреЗред

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

@ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рд╢реБрд░реБрдЖрдд рдХрд░рдиреЗ рдХреЗ

@gaearon

рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдореИрдВ рд░рд┐рдПрдХреНрдЯ рд╕реНрдерд╛рдиреАрдп рд░рд╛рдЬреНрдп рдореЙрдбрд▓ рдХреА рддрд░рд╣ рдХреБрдЫ рджреЗрдЦрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рд▓реЗрдХрд┐рди рд░рд┐рдбреНрдпреВрд╕рд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрд╢реНрдХрд┐рд▓ рд╣рд┐рд╕реНрд╕рд╛ рдпрд╣ рд╣реИ рдХрд┐ рд░рд┐рдПрдХреНрдЯ рд╕реНрдерд╛рдиреАрдп рд░рд╛рдЬреНрдп рдПрдХ рдШрдЯрдХ рдХреЗ рдЬреАрд╡рдирдЪрдХреНрд░ рд╕реЗ рдмрдВрдзрд╛ рд╣реБрдЖ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдк Redux рдореЗрдВ рд╕реНрдерд╛рдиреАрдп рд╕реНрдерд┐рддрд┐ рдХреЛ рдореЙрдбрд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЗ рдкрд╛рд╕ "рдмрдврд╝рддреЗ" рдФрд░ "рдЕрдирдорд╛рдЙрдВрдЯрд┐рдВрдЧ" рдХреЗ рд▓рд┐рдП рдЦрд╛рддрд╛ рд╣реИред рдПрд▓реНрдо рдХреЗ рдкрд╛рд╕ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ 1) рдШрдЯрдХреЛрдВ рдореЗрдВ рдЬреАрд╡рдирдЪрдХреНрд░ рдирд╣реАрдВ рд╣реИ, рдФрд░ 2) рдПрдХ рджреГрд╢реНрдп рдХрд╛ "рдорд╛рдЙрдВрдЯрд┐рдВрдЧ" рдореЙрдбрд▓ рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрдмрдХрд┐ рд░рд┐рдПрдХреНрдЯ рдореЗрдВ, рд╕реНрдерд╛рдиреАрдп рд╕реНрдерд┐рддрд┐ рдХреЗрд╡рд▓ _after_ рдореМрдЬреВрдж рд╣реИ

рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдиреЗ рдПрд▓реНрдо рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЛ рдПрд▓реБрдо рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ - "рдСрд▓ рдж рд╡реЗ" рдХреЛ рдКрдкрд░ рдХреА рддрд░рдл рдШреБрдорд╛рдпрд╛ - рдЙрд╕рдХреА рдЕрдкрдиреА рдХрдорд┐рдпрд╛рдВ рд╣реИрдВ рдФрд░ рд░рд┐рдПрдХреНрдЯ рдХреЗ рдЕрдкрдбреЗрдЯ рдФрд░ рд╕реБрд▓рд╣ рдЪрдХреНрд░ рдХреЗ рд╕рд╛рде рдпрд╣ рд╕рдм рдареАрдХ рдирд╣реАрдВ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ shouldComponentUpdate() рдЕрдиреБрдХреВрд▓рди рдХреЗ рдЙрджрд╛рд░рд╡рд╛рджреА рдЙрдкрдпреЛрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ) ... рдЬреЛ рддреЛрдбрд╝рддреЗ рд╣реИрдВ рдЕрдЧрд░ рдЖрдк render() рдЕрдВрджрд░ рдПрдХ рдбрд┐рд╕реНрдкреИрдЪ рд╡рд┐рдзрд┐ рдХреЛ "рдлреЙрд░рд╡рд░реНрдб" рдХрд░рддреЗ рд╣реИрдВред

рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдмрд┐рдВрджреБ рдкрд░, рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдмрд╕ reducers + setState рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдЗрд╕реЗ рдПрдХ рджрд┐рди рдХреЙрд▓ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ: D Unless / рдЬрдм рддрдХ React рд░рд╛рдЬреНрдп рд╡реГрдХреНрд╖ рдХреЛ

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ @threepointone https://github.com/threepointone/redux-rean-cocal рдХреЗ рд╕рд╛рде рд╣рд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ

@aclite рдХрд╛ рд╡реИрдЪрд╛рд░рд┐рдХ рдореЙрдбрд▓ рд╕реНрдерд╛рдиреАрдп рд░рд╛рдЬреНрдп рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреБрдирд┐рдпрд╛ рдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рджрд░реНрдж рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рд╣рдореЗрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ, рдорд╛рдЙрдВрдЯ рдкрд░ рдзреНрдпрд╛рди рджреЗрдирд╛ рд╣реИ, рд▓рдВрдмрди рдкреНрд░рднрд╛рд╡ рдХреЛ рд╕рдВрднрд╛рд▓рдирд╛ рд╣реИ рдпрд╛ рдЬреЛ рднреА ... рджреЗрдЦреЗрдВ https: // github.com/evancz/elm-architecture-tutorial/issues/49

@ рджреБрдХрд╛рдирджрд╛рд░ рд╣рд╛рдБ рдореИрдВ рд╕рд╣рдордд рд╣реВрдБред рдХреНрдпрд╛ рдпрд╣ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдореИрдВрдиреЗ рдЕрднреА рдХрд╣рд╛ рд╣реИ? : рдбреА

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

рд╣рд╛рдБ рд╣рдо рдЙрд╕реА рдкреЗрдЬ @acdlite рдкрд░ рд╣реИрдВ
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╕рд╛рде рдПрд▓реНрдо рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░реЗрдЧрд╛ред
рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдПрд▓реНрдо рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ vdom рдХреЗ рд╣реБрдХ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рдЕрдиреБрдорддрд┐ рджреЗ рд╕рдХрддрд╛ рд╣реИред

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдПрд▓реНрдо рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЛ рдХрд╛рдлреА рдХреБрдЫ рдмреЙрдпрд▓рд░рдкреНрд▓реЗрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЯрд┐рдХрд╛рдК рдирд╣реАрдВ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдЖрдк рд░реИрдкрд┐рдВрдЧ / рдПрдХреНрд╕рдЯреНрд░рдкрд┐рдВрдЧ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдлреНрд▓реЛ рдпрд╛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕ рд╕реНрдерд╛рдиреАрдп рд░рд╛рдЬреНрдп рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕рд░рд▓ рддрд░реАрдХрд╛ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛, рдЬреИрд╕реЗ @threepointone рдХрд╛ рд╕рдорд╛рдзрд╛рди

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

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

@gaearon рдХреНрдпрд╛ рдЖрдк рдЕрдкрдиреА рдкрд┐рдЫрд▓реА рдкреЛрд╕реНрдЯ рдореЗрдВ react-redux-provide рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рдореИрдВ рдкреВрдЫ рд░рд╣рд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрджрд┐ рдЖрдк рд╣реИрдВ, рддреЛ рдЖрдкрдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рдЗрд╕ рдкрд░ рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рдзреНрдпрд╛рди рдирд╣реАрдВ рджрд┐рдпрд╛ рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, @acdlite рдХреЗ рд░рд╛рдЬреНрдп рдХреЗ рдкреЗрдбрд╝ рдХреЛ

provide рдбреЗрдХреЛрд░реЗрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рдПрдкреАрдЖрдИ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдЕрдореВрд░реНрдд рд╣реИ рдФрд░ рд╣рд╛рдБ, рдпрд╣ рд╡рд░реНрддрдорд╛рди рдореЗрдВ redux рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ redux рдкрд░ рдирд┐рд░реНрднрд░ рд╣реЛрдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЛрдЪрдирд╛ рдЧрд▓рдд рддрд░реАрдХрд╛ рд╣реИ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪреЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдШрдЯрдХреЛрдВ рдФрд░ рд░рд╛рдЬреНрдп рдХреЗ рдкреЗрдбрд╝ рдХреЗ рдмреАрдЪ рдХреБрдЫ "рдЧреЛрдВрдж" рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд░рд┐рдПрдХреНрдЯ рдХреЗ context рдЕрднреА рддрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдирд╣реАрдВ рд╣реБрдП рд╣реИрдВред рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬреЛрдбрд╝ рддреЛрдбрд╝ рдФрд░ рд░рд╛рдЬреНрдп рд╡реГрдХреНрд╖ (рд░реЛрдВ) рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЖрджрд░реНрд╢ рд╡рд┐рдзрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдордЭреЗрдВ actions рдФрд░ reducers (рдпрд╛рдиреА, рджреБрдХрд╛рди рдХреЗ рд░рд╛рдЬреНрдп) рдХреЗ рд░реВрдк рдореЗрдВ props , рдЬрд╣рд╛рдБ рдЖрдк рдХрд╣реАрдВ рднреА рд╣реЛрдВ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ actions рдФрд░ reducers рдХреЛ propTypes (рдФрд░ / рдпрд╛ contextTypes рдореЗрдВ) рдШреЛрд╖рд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдк import рдХреБрдЫ рдФрд░ рдХреИрд╕реЗ рдХрд░реЗрдВред рдЖрдкрдХреЗ рдРрдк рдХреЗ рднреАрддрд░ред рдЬрдм рдЖрдк рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рд░ рдЪреАрдЬ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рддрд░реНрдХ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рд░рд┐рдПрдХреНрдЯ рдХреЗ context рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдЗрди рдмреБрдирд┐рдпрд╛рджреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╕рд┐рдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдХрд┐рд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ grep рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░реЗ 2 рд╕реЗрдХрдВрдб рд▓рдЧреЗрдЧрд╛ рдФрд░ @provide рдФрд░ import provide from 'react-redux-provide' рдЗрддрдирд╛ рд╣реИ рдХрд┐ рдЖрдк рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдлрд┐рд░ рд╕рд░рд▓ рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд╛рде рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬреЛ рдЕрдм рдЙрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдФрд░ рдЕрдЧрд░ рдРрд╕рд╛ рдХрднреА рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдХреЛрдИ рдмрдбрд╝реА рдмрд╛рдд рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╕рдм рдХреБрдЫ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдФрд░ рдЕрдиреБрдорд╛рдирд┐рдд рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдЧрд╛ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рд╕рдорд╕реНрдпрд╛ рдХреА рджреЗрдЦрд░реЗрдЦ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЖрдкрдХреЛ рдЕрднреА рднреА рдмрдврд╝рддреЗ рдФрд░ рдЕрдирдорд╛рдЙрдВрдЯрд┐рдВрдЧ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

@acdlite рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ?

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

рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛ рд╕рдХрддрд╛ рд╣реИ: рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓ рд░рд╛рдЬреНрдп рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рддреБрд▓рдирд╛ рдореЗрдВ ред
рдПрд▓реНрдо, рд░реЗрдбрдХреНрд╕, рд╕рд╛рдЗрдХрд┐рд▓ ... (рдкреНрд░рдЧрддрд┐ рдореЗрдВ рдХрд╛рдо)

рдПрдХрд╛рдзрд┐рдХ рд╕реНрдЯреЛрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рд╕рдВрднрд╛рд╡рд┐рдд рдЖрд╡рд╢реНрдпрдХрддрд╛ рддрдм рд╣реЛрддреА рд╣реИ рдЬрдм рдХрдИ _time рд▓рд╛рдЗрдиреНрд╕_, _рдЯрд╛рдЗрдо рдЯреНрд░реЗрд╡рд▓_, рд╕реЗрд╡рд┐рдВрдЧ рд▓реЛрдХреЗрд╢рди рдФрд░ рд╕реЗрд╡рд┐рдВрдЧ рдлрд╝реНрд░реАрдХреНрд╡реЗрдВрд╕реА рд╕рдВрднрд╡ рдФрд░ рдЖрд╡рд╢реНрдпрдХ рд╣реЛред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, user data рдФрд░ user actions рдЬреЛ рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИрдВ рдФрд░ common data рдФрд░ group actions рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╕рдореВрд╣ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИрдВ (рдЬреИрд╕реЗ рд╕рд╛рдЭрд╛ рдХрд┐рдП рдЧрдП рдмрд╣реБ-рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдпрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝)ред рдЗрд╕рд╕реЗ рдпрд╣ рддрдп рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рддрдп рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рд╡реНрдпрдХреНрддрд┐рдЧрдд рдбреЗрдЯрд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди) рдкреВрд░реНрд╡рд╡рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЕрдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдВрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛) рдФрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдмрдЪрдд рдФрд░ / рдпрд╛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдЪрдХреНрд░ рд╣реЛрдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рднреА рджреЗрддрд╛ рд╣реИред

рд╣рдо рдХреЛрдгреАрдп 2.0 рд╡рд┐рдХрд╛рд╕ рдорди рд╕реЗрдЯ рдФрд░ redux рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЛрдЪ рдХреЗ рд╕рд╛рде рдПрдХ рдХреЛрдгреАрдп 1.x рдЖрд╡реЗрджрди рдХреЗ рдбрд┐рдЬрд╛рдЗрди / рдкреНрд░рд╛рд░рдВрднрд┐рдХ рджреЗрд╡ рдЪрд░рдг рдореЗрдВ рд╣реИрдВред рдЕрддреАрдд рдореЗрдВ, рд╣рдо рдХреБрдЫ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░реЗрд╖рдгреЛрдВ рдФрд░ рдХреБрдЫ рд╕рдорд░реНрдкрд┐рдд рдкреНрд░реЗрд╖рдгреЛрдВ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдиреЗ рд╡рд╛рд▓реЗ рдХрдИ рд╕реНрдЯреЛрд░реЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рд╡рд╛рд╣ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд░рд╣реЗ рд╣реИрдВред

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

рднрд▓реЗ рд╣реА reducers рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдлреАрдЪрд░ / рд╡рд┐рдЬреЗрдЯ рдХреЗ рд╕рд╛рде рд░рд╣ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рдореЗрдВ рд╕реНрдЯреЛрд░ рдмрдирд╛рдиреЗ рдХрд╛ рд╕рдордп рдЖрдиреЗ рдкрд░ рдЙрди рд╕рднреА рдХреЛ рдХреНрд▓рдм рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд╣рдо рдЕрдкрдиреЗ рд╡рд┐рдЬреЗрдЯреНрд╕ рдХреЛ рд░рд┐рдбреНрдпреВрд╕рд░реНрд╕ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рдкреНрд░рддреНрдпрдХреНрд╖ / рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рд╕рдВрджрд░реНрдн рдХреЗ рдмрд┐рдирд╛ рдореМрдЬреВрдж рджреЗрдЦрдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ рдЬреЛ рдЗрд╕рдХреА рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдХреБрдЫ рдорд╛рд░реНрдЧрджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ рдпрд╛ рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЗрд╕ рддрд░рд╣ рдХреА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдЕрднреНрдпрд╛рд╕ рдХреЛ рд░реЗрдЦрд╛рдВрдХрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╣рдорд╛рд░реЗ рдРрдк рдореЗрдВ redux рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдХрд┐рд╕реА рднреА рдорджрдж рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд░рд╛рд╣рдирд╛ рдХреА рдЬрд╛рдПрдЧреАред рдзрдиреНрдпрд╡рд╛рджред

@VivekPMenon : рдЖрдкрдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЪрд┐рдВрддрд╛рдПрдБ рдХреНрдпрд╛ рд╣реИрдВ? рд░рд╛рдЬреНрдп рд╡реГрдХреНрд╖ рдХрд╛ рдЖрдХрд╛рд░? рдирд╛рдо рдмрджрд▓рдиреЗ рдХреА рдХреНрд░рд┐рдпрд╛рдУрдВ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ / Reducers рдХреЛ рдЕрд▓рдЧ рд░рдЦрдирд╛? Reducers рдХреЛ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдпрд╛ рд╣рдЯрд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛?

рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рдХреНрдпрд╛ рд╣реИ, рдореИрдВрдиреЗ рдЕрднреА-рдЕрднреА Redux addon рдЗрдХреЛрд╕рд┐рд╕реНрдЯрдо рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдиреЗ рд╡рд╛рд▓реА рдПрдХ рд▓рд┐рдВрдХ рд╕реВрдЪреА рдХреЛ рдкреВрд░рд╛ рдХрд┐рдпрд╛ рд╣реИред рдХрдИ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИрдВ рдЬреЛ рдЙрди рдЕрд▓рдЧрд╛рд╡ / рджреЛрд╣рд░рд╛рд╡ / рд╕реНрдХреВрдкрд┐рдВрдЧ рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдХреБрдЫ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред рдЖрдк reducer рдкреГрд╖реНрда рдФрд░ рд╕реНрдерд╛рдиреАрдп / рдШрдЯрдХ рд░рд╛рдЬреНрдп рдкреГрд╖реНрда рдкрд░ рдПрдХ рдирдЬрд╝рд░ рд░рдЦрдирд╛ рдЪрд╛рд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдЙрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЖрдкрдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИред

@markeriksonред рдЙрддреНрддрд░ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред рдореЗрд░рд╛ рднреНрд░рдо рдЬреНрдпрд╛рджрд╛рддрд░ 2 рдХреЗ рдмрд┐рдВрджреБ (рдЕрд▓рдЧрд╛рд╡) рдХреЗ рдЖрд╕рдкрд╛рд╕ рд╣реИред рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдорд╛рд░реА рдПрдХ рдЯреАрдо рд╡рд┐рдЬреЗрдЯ рдП рдмрдирд╛рддреА рд╣реИ рдЬреЛ рдкреНрд░рд╡рд╛рд╣ рдЖрдзрд╛рд░рд┐рдд рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд░рд╛рдЬреНрдп рдХреЗ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рд╕реНрдЯреЛрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╡реЗ рдПрдХ jspm / npm рдкреИрдХреЗрдЬ рдмрдирд╛рдПрдВрдЧреЗ рдФрд░ рдпрджрд┐ рдЗрд╕реЗ рд╡рд┐рддрд░рд┐рдд рдХрд░реЗрдВрдЧреЗред рд╡рд╣реА рджреВрд╕рд░реА рдЯреАрдо рдХреЗ рд╕рд╛рде рдорд╛рдорд▓рд╛ рд╣реИ рдЬреЛ рд╡рд┐рдЬреЗрдЯ рдмреА рдмрдирд╛рддрд╛ рд╣реИред рдпреЗ рд╕реНрд╡рддрдВрддреНрд░ рд╡рд┐рдЬреЗрдЯ / рдкреИрдХреЗрдЬ рд╣реИрдВ рдФрд░ рдПрдХ-рджреВрд╕рд░реЗ рдкрд░ рдкреНрд░рддреНрдпрдХреНрд╖ / рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рдирд┐рд░реНрднрд░рддрд╛ рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

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

@VivekPMenon рдпрд╣ рдПрдХ рд╡реИрдз рдкреНрд░рд╢реНрди рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рдореЗрдВ рд╕реЗ рдХреБрдЫ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдЖрдк рдпрд╣рд╛рдВ рдХреБрдЫ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: https://github.com/slorber/scalable-frontend-with-elm-or-redux

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, Redux-saga рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореЗрд░реА awser рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ: http://stackoverflow.com/a/34623840/82609

@ Slorber рдорд╛рд░реНрдЧрджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред рдЖрдЧреЗ рдЖрдиреЗ рд╡рд╛рд▓реЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдБ рджреЗрдЦреЗрдВ https://github.com/slorber/scalable-frontend-with-elm-or-redux

@taggartbg рдХреНрдпрд╛ рдЖрдкрдиреЗ рдЕрдВрддрддрдГ рдПрдХ рдореБрджреНрджрд╛ рдЦреЛрд▓рд╛? рдореБрдЭреЗ рдПрдХ рд╕рдорд╛рди рдЪреАрдЬрд╝ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА

@slorber

рдореБрдЭреЗ рдпрд╣ рдХрд╣рдиреЗ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ рдХрд┐ redux рдЧрд╛рдерд╛ рдПрдХ рдмрд╣реБрдд рд╣реА рдЕрджреНрднреБрдд рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕рдореЗрдВ рдмрд╣реБрдд рдХреБрдЫ рд╣реИ рдФрд░ рдпрд╣ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдХрдо рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕реЗ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЕрдкрдиреА рдХрд┐рд╕реА рднреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛ред рдпрд╣рд╛рдБ рдХреБрдЫ рдХрд╛рд░рдг рд╣реИрдВ

рд╕рд╛рдЧрд╛ рд╕реНрдЯреЗрдЯрд▓реЗрд╕ рд╣реИрдВ

рдЖрдк рдПрдХ рдЬрдирд░реЗрдЯрд░ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдХреНрд░рдордмрджреНрдз рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╡реЗ рд╕рдордЭ рдореЗрдВ рдЖрддреЗ рд╣реИрдВ рдХрд┐ рд╡реЗ рдЪрд▓ рд░рд╣реЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рд╡реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЧрд╛рдерд╛ рдХреА рд╕реНрдерд┐рддрд┐ рд╕реЗ рдмрдВрдзреЗ рд╣реИрдВред рдпрд╣ рд╕реАрдорд╛рдУрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ:

  • рдЖрдк рд╕рдордп рдкрд░ рдЬрдирд░реЗрдЯрд░ рдирд╣реАрдВ рд▓реЗ рд╕рдХрддреЗ
  • рдЖрдк рдЙрд╕ рдкрде рдХреЛ рдЯреНрд░реЗрд╕ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рдпрд╣ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣реИ
  • рдЖрдк рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЕрд╡рд╕реНрдерд╛ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ
  • рдЖрдк рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рд░рд╛рдЬреНрдп рд╕реЗ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рддрд░реНрдХ рдХреЛ рдЕрд▓рдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ [*]
  • рдЖрдк рд╕рд╛рдЧ рдХреЛ рд╕реНрдЯреЛрд░ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ

[*] рдЗрд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдореЙрдбрд▓ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рднреАрддрд░ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рддрд░реНрдХ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдПрдорд╡реА рдФрд░ рд╕реА рдХреЛ рдПрдорд╡реАрд╕реА рдореЗрдВ рдПрдХ рд╣реА рдЪреАрдЬрд╝ рдмрдирд╛ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдПрдХ рдПрдВрдЯреАрдкреИрдЯрд░реНрди рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ

рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЛ рднреЗрдЬрдирд╛ рдЧреИрд░-рдирд┐рдпрддрд╛рддреНрдордХ рд╣реИ

Redux рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрдбрд╝реЗ рд▓рд╛рднреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╕рд░рд▓ рд╕рдордЭ рд╣реИ рдХрд┐ рд░рд╛рдЬреНрдп рдХрд┐рд╕реА рдХрд╛рд░реНрд░рд╡рд╛рдИ рдкрд░ рдХреИрд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди Redux-saga рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдпрд╣ рдирд╣реАрдВ рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдЙрд╕ рдЧрд╛рдерд╛ рдХреЗ рдХрд┐рд╕ рднрд╛рдЧ рд╕реЗ рд╢реБрд░реВ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдХреНрд░рдорд┐рдХ рдЕрд╡рд╕реНрдерд╛

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


рд░рд╛рдЬреНрдп рдореЗрдВ рд▓реЙрдЬрд┐рдХ рд▓реЙрдЬрд┐рдХ рдЦрд░рд╛рдм рд╣реИ, рдФрд░ рдореЗрд░реА рд░рд╛рдп рдореЗрдВ рдпрд╣ рдПрдХ рддрд░рд╣ рд╕реЗ рд░реЗрдбрдХреНрд╕ рдЧрд╛рдерд╛ рд╣реИред

рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдареАрдХ рд╣реИ рдХрд┐ рдорд╛рди рд▓реЗрдВ рдХрд┐ рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рд╕реНрдерд┐рддрд┐ _your_ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдпрд╣ рдорд╛рдирдирд╛ тАЛтАЛрднреА рдареАрдХ рд╣реИ рдХрд┐ рдЬрдм рддрдХ рдпрд╣ _your_ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рддрдм рддрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рд╕реНрдерд┐рддрд┐ рдЕрдиреБрдорд╛рдирд┐рдд рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рд╕реНрдЯреЛрд░ рдХреА рдЬрд╛рдирдХрд╛рд░реА рд░рдЦрдирд╛ рдареАрдХ рд╣реИ рдЬреЛ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рддрд░реНрдХ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рдмрд┐рдирд╛ рдЖрдкрдХрд╛ рдЖрд╡реЗрджрди рдХреИрд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИред

@eloytoro

рдореИрдВ рдЖрдкрдХреА рдЪрд┐рдВрддрд╛рдУрдВ рдХреЛ рд╕рдордЭрддрд╛ рд╣реВрдВред рдпрджрд┐ рдЖрдк redux-saga рдХреЗ рдореБрджреНрджреЛрдВ рдХреЛ рджреЗрдЦреЗрдВрдЧреЗ рддреЛ рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдЗрди рдмрд╛рддреЛрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд╕рдорд╛рдзрд╛рди рдвреВрдВрдвреЗ рдЬрд╛рдиреЗ рд╣реИрдВред

рдпрд╣ рднреА рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ redux-saga рдЬрдирд░реЗрдЯрд░ рдХреЗ рд╕рд╛рде рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪреБрдирддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдЧрд╛рдерд╛ рдкреИрдЯрд░реНрди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдХреБрд▓ рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдкреЗрд╢реЗрд╡рд░реЛрдВ рдФрд░ рд╡рд┐рдкрдХреНрд╖ рд╣реИрдВред

рдПрдХ рдЪреБрдирд┐рдВрджрд╛ рдкреНрд░рднрд╛рд╡ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдЕрдкрдиреЗ Redux-saga рдХреЗ рдЕрдВрджрд░ redux рд░рд╛рдЬреНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдк рдЬрдирд░реЗрдЯрд░ рдХреЗ рдЕрдВрджрд░ рд░рд╛рдЬреНрдп рдХреЛ рдЫреБрдкрд╛рдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рд╕реАрдзреЗ рдЕрдкрдиреА saga рд╕реНрдерд┐рддрд┐ рдХреЛ redux-store рдХреЗ рдЕрдВрджрд░ рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рдЕрдзрд┐рдХ рдХрд╛рд░реНрдп рд╢рд╛рдорд┐рд▓ рд╣реИред

рд╕рд╛рдЧрд╛ рджреЗрд╡рддрд╛ рд╣реИрдВ рдЬреЛ рд╕рд╛рдЧ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред

рд╕рдордп-рдпрд╛рддреНрд░рд╛ рдХреЗ рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рди рд╣реИрдВ рд▓реЗрдХрд┐рди рдЕрднреА рддрдХ рдХреЛрдИ рдареЛрд╕ рдХреНрд░рд┐рдпрд╛рдиреНрд╡рдпрди рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ

рд╕рд╣реАред рдХрд╛рдлреА рд▓рдВрдмрд╛ рд╡рд┐рд╖рдп рдФрд░ рдмрд╣реБрдд рджрд┐рд▓рдЪрд╕реНрдкред рдореИрдВ рд╡рд┐рднрд┐рдиреНрди рд░рд╛рдЬреНрдп-рдкреНрд░рдмрдВрдзрди рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╕рдордп рдореИрдВ рдХреБрдЫ рдмрд╛рддреЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦ рд░рд╣рд╛ рд╣реВрдВ:

  1. рд╕рддреНрдп рдХрд╛ рдПрдХрд▓ рд╕реНрд░реЛрдд
  2. рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рдкрд░ рд░реЗрдВрдбрд░ рдХрд░рдирд╛ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рдкрд░ рд╢реБрд░реБрдЖрддреА рдбреЗрдЯрд╛ рдлреАрдб рдХрд░рдирд╛ рдХрд┐рддрдирд╛ рдЖрд╕рд╛рди / рдХрдард┐рди рд╣реИ
  3. рд░реАрд▓реЛрдб рдХреЗ рдмрд╛рдж рдкреВрд░реНрд╡рд╡рдд / рдкреБрди: рдФрд░ рд▓рдЧрд╛рддрд╛рд░ рдЗрддрд┐рд╣рд╛рд╕ рднрдВрдбрд╛рд░рдг рдХреА рддрд░рд╣ devtoolsред
  4. рдПрдирд┐рдореЗрд╢рди, рдПрдирд┐рдореЗрд╢рди, рдПрдирд┐рдореЗрд╢рдиред рдореИрдВ рд╣рдореЗрд╢рд╛ рдЕрдкрдиреЗ рдЖрдк рд╕реЗ рдкреВрдЫрддрд╛ рд╣реВрдВ _ "рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рдПрдирд┐рдореЗрд╢рди рдХреИрд╕реЗ рдХрд╛рдо рдХрд░реЗрдЧрд╛ a рдпрд╛ b" _ред рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рдХреБрдВрдЬреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЬрд┐рди рдЙрддреНрдкрд╛рджреЛрдВ рдХрд╛ рд╡рд┐рдХрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рд╡реЗ UX- рдХреЗрдВрджреНрд░рд┐рдд рд╣реИрдВред рдореИрдВ рдмрд╣реБрдд рднреНрд░рдо рд╕рд╛рдЭрд╛ рдХрд░рддрд╛ рд╣реВрдВ @jsonnull рдХреЗ рдкрд╛рд╕ред
  5. рдХрд┐рд╕реА рдЕрдиреНрдп рдРрдк рдХреЗ рдЕрдВрджрд░ рдШрдЯрдХреЛрдВ рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ
  6. рдЕрдЦрдВрдбрддрд╛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрджрд░реНрднрд┐рдд рдбреЗрдЯрд╛ (_major рджрд░реНрдж_) рдХрд╛ рдЬрд▓рдпреЛрдЬрди (рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдбреЗрдЯрд╛-рд╕реНрд░реЛрдд рд╕реЗ рдкреНрд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдмрдВрдзрд┐рдд)
  7. рдЗрд╕ рддрд░рд╣ рдХреА рдЪрд░реНрдЪрд╛ рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рджреЗрд╡реЛрдВ рдХрд╛ рд╕рдореБрджрд╛рдп

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

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

рджреЛрдиреЛрдВ рд╕рддреНрдп рдХреЗ рдПрдХрд▓ рд╕реНрд░реЛрдд рдХреЗ рд╡рд┐рдЪрд╛рд░ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рджреЗрдЦрдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ рдХрд┐ рд╡реЗ рдЗрд╕реЗ рдХреИрд╕реЗ рд╕рдВрднрд╛рд▓рддреЗ рд╣реИрдВред

Mobx рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореЗрд░рд╛ (рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕реАрдорд┐рдд) рд╢реЛрдз рдЗрд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╣реИ:

  1. Mobx (рдмрд╕ Redux рдХреЗ рд░реВрдк рдореЗрдВ) рд╕рддреНрдп рдХреЗ рдПрдХрд▓ рд╕реНрд░реЛрдд рдХреА рд╡рдХрд╛рд▓рдд рдХрд░ рд░рд╣рд╛ рд╣реИ рд▓реЗрдХрд┐рди рдПрдХ рд╡рд░реНрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрд╡рд▓реЛрдХрди рдпреЛрдЧреНрдп рдЧреБрдгреЛрдВ рдХреЗ рд╕рд╛рдеред рдпрд╣ рдЕрд╡рдзрд╛рд░рдгрд╛ рдПрдХ рдкреВрд░реЗ рдХреЗ рд░реВрдк рдореЗрдВ рд░рд┐рдбрдХреНрд╕ рдФрд░ рдлреНрд▓рдХреНрд╕ рдХреЗ рд╕рд╛рде рдЕрдВрддрд░ рдкреИрджрд╛ рдХрд░рддреА рд╣реИ:

    1. Mobx рдЙрдк-рд╕реНрдЯреЛрд░ (рд╡реИрд╢реНрд╡рд┐рдХ рдПрдХрд▓ one_ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ / рд╣рд┐рд╕реНрд╕рд╛) рдХреА рд╡рдХрд╛рд▓рдд рднреА рдХрд░рддрд╛ рд╣реИред рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рд╕реНрдХреАрдорд╛ рдХреЛ рдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдЬреИрд╕рд╛ рд╣реИред рдпрд╣ рдереЛрдбрд╝рд╛ рдХрд╖реНрдЯрдкреНрд░рдж рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕рд░реНрд╡рд░ рдкрд░ рднреА рд╕реНрдХреАрдорд╛ рд╣реИред рдореИрдВ redux-orm рд╕рд╛рде рд╕рдорд╛рдирддрд╛рдПрдВ рджреЗрдЦрддрд╛ рд╣реВрдВред AFAIK рдЙрдк-рд╕реНрдЯреЛрд░реЛрдВ рдХреЛ рдкреНрд░реЙрдкреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдШрдЯрдХреЛрдВ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рд╣реИ (рдЗрд╕ рддрд░рд╣ рд╕реЗ рдкреНрд░реЙрдореНрдкреНрдЯ рдкрд░ рдЧреНрд▓реЛрдмрд▓ рдореИрдкрд┐рдВрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╛рдЬреНрдп рдореИрдкрд┐рдВрдЧ рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рд╣реИ рдпрд╛ рдХреБрдЫ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ)ред рд╣рд╛рд▓рд╛рдБрдХрд┐ рдХрд┐рд╕реА рдПрдХрд▓ рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рд╕реЗ "рдЧреБрдгреЛрдВ" рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореЗрд░рд╛ рд╡рд┐рдЪрд╛рд░ рдЯреВрдЯ рдЬрд╛рддрд╛ рд╣реИ - рдЙрдиреНрд╣реЗрдВ рдЗрд╕ рдмрд╛рдд рдХрд╛ рд╡рд┐рд╡рд░рдг рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдШрдЯрдХ рдХреЛ рдХреНрдпрд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдпрд╣ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реЛрдЧреА рдЕрдЧрд░ рд░рд┐рдПрдХреНрдЯ propTypes рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реНрдЯреЛрд░ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛: рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдЯреЛрд░ рдФрд░ рдЙрдк-рд╕реНрдЯреЛрд░ рд╣реЛрдиреЗ рд╕реЗ рдбреЗрдЯрд╛ рдХреЛ рд╕реАрдзреЗ рд╕рд╛рдорд╛рдиреНрдпреАрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд┐рдирд╛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рдЗрдВрдЯрд┐рдЕрд▓ рдбреЗрдЯрд╛ рдХреЛ рдлреАрдб рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдЗрд╕ рддрд░рд╣ рдХрд╛ рд╡реНрдпрд░реНрде рд╣реИ:

    2. рд╡рд░реНрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдЯреЛрд░ рдХреЗ рд╡рд┐рдЪрд╛рд░ рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рдкрд╛рд╕ рдмреЙрдХреНрд╕ рд╕реЗ рдХреНрд░рдордмрджреНрдзрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдк рдбреЗрдЯрд╛ рдбрд┐рд▓реАрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдЖрдкрдХрд╛ рдХрд╛рдо рд╣реИред

  2. рдЗрддрд┐рд╣рд╛рд╕ рдФрд░ рдкреВрд░реНрд╡рд╡рдд рдХрд░реЗрдВ / рдлрд┐рд░ рд╕реЗ рдмрджрд▓рдиреЗ рдХреЗ рдмрд╛рдж рд░рд╛рдЬреНрдп рдХреЗ рд╕реНрдиреИрдкрд╢реЙрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдЦреБрдж рдХреЛ рд╕реАрд░рд┐рдпрд╕рд▓рд╛рдЗрдЬрд╝рд░, рдбрд┐рд╕реЗрд░рд┐рдПрд▓рд╛рдЗрдЬрд╝рд░ рд▓рд┐рдЦрдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИред рдЙрджрд╛рд╣рд░рдг рдпрд╣рд╛рдБ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: https://github.com/mobxjs/mobx-reactive2015-demo/blob/master/src/stores/time.js
  3. рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдЪреНрдЫреА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рд╕рд╛рдорд╛рди рдмрд╛рд╣рд░ рдЫреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдЧреИрд░-рд▓рдЧрд╛рддрд╛рд░ рдПрдиреАрдореЗрд╢рди рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫреА рдЬрдЧрд╣ рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдХреНрд░рдордмрджреНрдз рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЗрд╕реЗ рдЕрдирджреЗрдЦрд╛ рдХрд░ рджреЗрддреЗ рд╣реИрдВ рдФрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдиреАрдореЗрд╢рди рдЪрд░рдгреЛрдВ рд╕реЗ рднрд░рд╛ рдХреЛрдИ рдирдпрд╛ / рдкреВрд░реНрд╡рд╡рдд рдирд╣реАрдВ рд╣реИред
  4. Mobx рд╕реНрдЯреЛрд░ рдореЗрдВ рдбреЗрдЯрд╛ рдХреА рд╡реНрдпреБрддреНрдкрддреНрддрд┐ рд░рдЦрдиреЗ рдХреА рд╡рдХрд╛рд▓рдд рдХрд░рддрд╛ рд╣реИ (рд╕реНрдЯреЛрд░ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ) reselect + connect рдбреЗрдХреЛрд░реЗрдЯрд░ рдХрд╛ рд╡рд┐рд░реЛрдз рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдореБрдЭреЗ рдЧрд▓рдд рд▓рдЧрддрд╛ рд╣реИред
  5. рдЕрдкрдиреЗ рдЕрд╡рд▓реЛрдХрдиреАрдп рд╕реНрд╡рднрд╛рд╡ рдХреЗ рдХрд╛рд░рдг, mobx рдХреБрд╢рд▓ рд╢реБрджреНрдз рдШрдЯрдХреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИред рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреА рдЙрдерд▓реЗ рддреБрд▓рдирд╛ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╕рд╛рдордЧреНрд░реА рд╡реИрд╕реЗ рднреА рдЕрд╡рд▓реЛрдХрдиреАрдп рд╣реИред

рд╕реИрдо рдФрд░ рд░реЗрдбрдХреНрд╕ рдХреА рддреБрд▓рдирд╛ рдХрд░рдирд╛, рдореБрдЭреЗ рдпрд╣ рд╕реЛрдЪрдирд╛ рдкрд╕рдВрдж рд╣реИ рдХрд┐ рддрд░реНрдХ рдХреИрд╕реЗ рдмрд╣рддрд╛ рд╣реИ:

  1. Redux:

    1. рдПрдХ рджреБрдХрд╛рди рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ

    2. рдЙрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ рдЬреЛ рд╕реНрдЯреЛрд░ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рд╕рдВрднрд╛рд▓рддреЗ рд╣реИрдВ (рд░рд┐рдбреНрдпреВрд╕рд░)

    3. рд╣рд░ рджреБрдХрд╛рди рдХреЛ рдмрджрд▓рдиреЗ рдФрд░ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд░реЗрдбреНрдпреВрд╕рд░ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдИрд╡реЗрдВрдЯ (рд░рд┐рдбрдХреНрд╕ рдПрдХреНрд╢рди) рдЖрдЗрдбреЗрдВрдЯрд┐рдлрд╝рд╛рдпрд░ (рд░рд┐рдбрдХреНрд╕ рдПрдХреНрд╢рди рдЯрд╛рдЗрдк) рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ

    4. рдШрдЯрдХ рдХрдВрдЯреЗрдирд░ рдЧреБрдгреЛрдВ рдХреЗ рд▓рд┐рдП рдореИрдк рд╕реНрдЯреЛрд░, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░реИрдХреНрд╢рди (рдХреНрд▓рд┐рдХ, рдкреНрд░рдХрд╛рд░, sscroll, рдЖрджрд┐) рдХреЗ рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ рдЧреБрдЬрд░рдиреЗ рд╡рд╛рд▓реЗ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛ рдХреЗрд╡рд▓ рдИрд╡реЗрдВрдЯ / рдЯреНрд░рд┐рдЧрд░ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рддреЗ рд╣реИрдВред

    5. рдШрдЯрдХ рдПрдХ рдШрдЯрдирд╛ (redux рдХреНрд░рд┐рдпрд╛) рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╕рднреА reducers рдХреЗ рдЦрд┐рд▓рд╛рдл рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ

    6. рдирдП рд░рд╛рдЬреНрдп рдХреЗ рд╕рд╛рде рд░реЗрдВрдбрд░рд░ред

  2. рд╕реИрдо:

    1. рдПрдХ рджреБрдХрд╛рди рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВред

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

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

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

    5. рдиреЛрдЯ: рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдХреЛрдИ рдкреНрд░реЗрд╖рдг рдирд╣реАрдВ рд╣реИ, рд╕реАрдзреЗ reducers рдХрд╛ рдЧреБрдЬрд░рдирд╛ред

рддреЛ, рд╕рднреА redux, SAM рдФрд░ Mobx рд░рд╛рдЬреНрдп рдХреЛ рдПрдХ рд╕реНрдерд╛рди рдкрд░ рд░рдЦрддреЗ рд╣реИрдВред рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рд╡реЗ рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ, рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЕрд╕рдлрд▓рддрд╛ рд▓рд╛рддрд╛ рд╣реИред Redux рдФрд░ рдЙрд╕рдХреЗ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдХреЛ рдЕрдм рддрдХ рдХреЛрдИ рдирд╣реАрдВ рд╣рд░рд╛ рд╕рдХрддрд╛ рд╣реИред

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

рдореИрдВ рдХреБрдЫ рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдЧреИрд░-рдХреНрд░рдорд┐рдХ рд╕реНрдерд┐рддрд┐ рдХреЛ рдмреЗрд╣рддрд░ рддрд░реАрдХреЗ рд╕реЗ рдХреИрд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред рдЬрд┐рд╕рдореЗрдВ рдХрд┐рд╕реА рднреА рд░рд╛рдЬреНрдп рд╕реЗ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред рдореИрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдм рдХреБрдЫ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛, рд▓реЗрдХрд┐рди рд╕реНрдЯреЛрд░ рдореЗрдВ рд╡рд╛рдкрд╕ рдлрд╝рдВрдХреНрд╢рди / рдСрдмреНрдЬреЗрдХреНрдЯ рд╕рдВрджрд░реНрднред рд╡реНрд╣рд╛рдЯреНрд╕рдПрдк рдПрдХ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЬреАрд╡рди рдЪрдХреНрд░ рдХреЗ рд╕рд╛рде рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИрдВ рдЬреЛ рдореЗрд░реЗ рдЖрд╡реЗрджрди рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдореЗрд░реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рд╣реИрдВред - рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдШрдЯрдХреЛрдВ рдХреЗ рд╕рдорд╛рди рд▓рдЧрддрд╛ рд╣реИ, рдмрд╕ рдпреВрдЖрдИ рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдмрд▓реНрдХрд┐ рдХрд╕реНрдЯрдо рддрд░реНрдХред

рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЖрдк рд▓реЛрдЧ рдПрд░рд┐рдХ рдореАрдЬрд░ рдХрд╛ рдпрд╣ рд▓реЗрдЦ рдкрдврд╝ рдЪреБрдХреЗ рд╣реИрдВред рдмрд╕ рдПрдХ рд╕рд░рд▓ рдЙрджреНрдзрд░рдг:

рдЖрдо рдзрд╛рд░рдгрд╛ рдХреЗ рд╡рд┐рдкрд░реАрдд, рд░рд╛рдЬреНрдп рдЪрд░ рдХреЛ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдмрдирд╛рдирд╛ рдЕрд╕реНрд╡реАрдХрд╛рд░реНрдп рдирд┐рд╣рд┐рдд рдкреНрд░рднрд╛рд╡ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣реАрдВ рдирд╣реАрдВ рдЖрддрд╛ рд╣реИ

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

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

рдореИрдВ рдПрд░рд┐рдХ рдореАрдЬреЗрд░ рдХреЗ рдХрд╛рдо рдХрд╛ рдкреНрд░рд╢рдВрд╕рдХ рд╣реВрдВ рдФрд░ рдЙрддреНрд╕реБрдХрддрд╛ рд╕реЗ рд╡рд╣ рдХреБрдЫ рднреА рдкрдврд╝рдиреЗ рдФрд░ рд╕реБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣реВрдВрдЧрд╛, рдЬрдмрдХрд┐ рдпрд╣ рднреА рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП рдХрд┐ рд╡рд╣ рдореЗрд░реЗ рд╕рдорд╛рди рд╡реНрдпрд╡рд╕рд╛рдп, рддрдХрдиреАрдХреА рдФрд░ рдмреМрджреНрдзрд┐рдХ рдмрд╛рдзрд╛рдУрдВ рдХреЗ рддрд╣рдд рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рдореЗрдВ рдореБрдЦреНрдп рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╣рд░ рдХреЛрдИ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ IS-A рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди рд╣реИред рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдПрдВ рдХреЗрд╡рд▓ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреА рд╣реИрдВ, рдореНрдпреВрдЯреЗрд╢рди рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреЗ рд▓рд┐рдП рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдХреЗ рдПрдХ рд╕рдореВрд╣ рдореЗрдВ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд░реИрдкрд░ рдЬреЛрдбрд╝рдирд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд░рд╛рдЬреНрдп рдХреЛ рдореНрдпреВрдЯ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рдмрдирдиреЗ рд╡рд╛рд▓рд╛ рдирд╣реАрдВ рд╣реИред рд╡рд╣ рдмрдХрд╡рд╛рд╕ рд╣реИред

рдЗрд╕рдХреЗ рдкреАрдЫреЗ рдПрдХ рд╕рд┐рджреНрдзрд╛рдВрдд рд╣реИ (рдПрдкреНрд▓реАрдХреЗрд╢рди) рд╕реНрдЯреЗрдЯ рдореНрдпреВрдЯреЗрд╢рди, рдЗрд╕реЗ TLA + рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╣ рдХрд╛рдлреА рдЕрдЬреАрдм рд╣реИ ... рдПрд░рд┐рдХ рдиреЗ рдХрднреА рднреА рдЯреАрдПрд▓рдП + рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд┐рдпрд╛ ...

JJ-

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

рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕реЗ рдХреИрд╕реЗ рдареАрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рдмрд╛рдд рд╕реЗ рд╕рд╣рдордд рдирд╣реАрдВ рд╣реЛрдВрдЧреЗ рдХрд┐ рдпрд╣ рдПрдХ рдРрд╕реА рд╕рдорд╕реНрдпрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП " рдкреНрд░рдердо рд╕рд┐рджреНрдзрд╛рдВрдд " рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ?

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

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

рдЖрдк рдПрд░рд┐рдХ рдХреЗ рд╣рд╛рд╣рд╛ рдЙрджрд╛рд╣рд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд┐рддрдирд╛ рдЪрд╛рд╣реЗрдВ рдЙрддрдирд╛ рд╣рдБрд╕ рд╕рдХрддреЗ рд╣реИрдВ:
// prints Ha var ha = Ha(); var haha = ha+ha;

рд▓реЗрдХрд┐рди рд╡рд╣ рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рд░рд╛рдЬреНрдп рдореЗрдВ рдЧрд▓рдд рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рди рдХреБрдЫ рдЬреНрдпрд╛рджрд╛, рди рдХреБрдЫ рдХрдоред

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

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

рддреЛ рдлрд┐рд░, рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрддреНрд╕реБрдХ рд╣реВрдВ рдХрд┐ рдПрд░рд┐рдХ рдЯреАрдПрд▓рдП + рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рд╕реЛрдЪрддрд╛ рд╣реИ, рдореИрдВрдиреЗ рд▓рд┐рдВрдХреНрдбрдЗрди рдкрд░ рдЙрд╕рдХреЗ рд╕рд╛рде рдХрдиреЗрдХреНрдЯ рдХрд┐рдпрд╛ рдФрд░ рд╕рд╡рд╛рд▓ рдкреВрдЫрд╛ред рдХрднреА рдЬрд╡рд╛рдм рдирд╣реАрдВ рдорд┐рд▓рд╛ ... рдЖрдЦрд┐рд░ рдбреЙред рд▓рд╛рдордкреЛрд░реНрдЯ рдХреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдХ рдЯреНрдпреВрд░рд┐рдВрдЧ рдкреБрд░рд╕реНрдХрд╛рд░ рдорд┐рд▓рд╛, рдпрд╣ рд╢рд╛рдпрдж рдЙрдирдХреЗ рд╕рдордп рдХреЗ рд▓рд╛рдпрдХ рдирд╣реАрдВ рд╣реИред

рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ, @jdubray , рдЖрдк рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдЯреНрд░реЛрд▓рд┐рдВрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЖрдкрдиреЗ рдЗрд╕ рддрд░реНрдХ, рдЕрдиреНрдп рдореБрджреНрджреЛрдВ рдФрд░ рдЕрдиреНрдп рдЬрдЧрд╣реЛрдВ рдкрд░ рджрд░реНрдЬрдиреЛрдВ рдмрд╛рд░ рдЕрдкрдиреЗ рддрд░реНрдХ рджреЛрд╣рд░рд╛рдП рд╣реИрдВред рдЖрдкрдиреЗ рдбреИрди рдФрд░ рд░реЗрдбрдХреНрд╕ рд╕рдореБрджрд╛рдп рдХрд╛ рдЕрдкрдорд╛рди рдХрд┐рдпрд╛ рд╣реИ, рдЖрдкрдиреЗ рдЕрдкрдиреА рд╕рд╛рдЦ рдХреЛ рдЪрд╛рд░реЛрдВ рдУрд░ рд▓рд╣рд░рд╛рдпрд╛ рд╣реИ, рдФрд░ "рдЯреАрдПрд▓рдП +" рдФрд░ "рд▓реИрдордкреЛрд░реНрдЯ" рд╢рдмреНрджреЛрдВ рдХрд╛ рдЖрд╣реНрд╡рд╛рди рдХрд░рддреЗ рд░рд╣реЗрдВ, рдЬреИрд╕реЗ рдХрд┐ рд╡реЗ рдкрд╡рд┐рддреНрд░ рдЧреНрд░рд┐рд▓ рдФрд░ рдЬреАрд╡рди рдХрд╛ рдЙрддреНрддрд░, рдмреНрд░рд╣реНрдорд╛рдВрдб рдФрд░ рд╕рдм рдХреБрдЫ рд╣реИрдВред рдЖрдкрдиреЗ рдЬреЛрд░ рджреЗрдХрд░ рдХрд╣рд╛ рд╣реИ рдХрд┐ рд╕реИрдо Redux рд╕реЗ рдмрд╣реБрдд рдмреЗрд╣рддрд░ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдмреВрдд рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдирд┐рдордВрддреНрд░рдгреЛрдВ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рд╕рд╛рд░реНрдердХ рддреБрд▓рдирд╛ рдРрдкреНрд╕ рдХреЗ рддрд░реАрдХреЗ рдореЗрдВ рдмрд╣реБрдд рдХреБрдЫ рд▓рд┐рдЦреЗ рдмрд┐рдирд╛ред рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд┐рд╕реА рдХреЗ рджрд┐рдорд╛рдЧ рдХреЛ рдмрджрд▓рдиреЗ рдирд╣реАрдВ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдм рддрдХ рдЖрд╢реНрд╡рд╕реНрдд рдирд╣реАрдВ рд╣реИред рдореИрдВ рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рдЕрдкрдирд╛ рд╕рдордп рдХреБрдЫ рдЕрдзрд┐рдХ рдЙрддреНрдкрд╛рджрдХ рдмрдирд╛рдиреЗ рдореЗрдВ рдмрд┐рддрд╛рдПрдВред

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

@markerikson рдореИрдВ рдЗрд╕ рдЪрд░реНрдЪрд╛ рдХреЛ рдЬрд╛рд░реА рд░рдЦрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рднрд▓реЗ рд╣реА рдЗрд╕рдХрд╛ рд╢реАрд░реНрд╖рдХ рдХрд╣реАрдВ рднреА рд╣реЛ, рд╡рд┐рд╖рдп рдореБрдЭреЗ рдХрд╛рдлреА рд░реБрдЪрд┐рдХрд░ рд▓рдЧрддрд╛ рд╣реИред рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ рдХрд┐ рд╡рд╣ рдЕрдкрдиреА рдЬрд╣рд░реАрд▓реА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓реЗрдВ рдФрд░ рдЕрдЪреНрдЫреЗ рдУрдкрди рд╕реЛрд░реНрд╕ рдЪрд░реНрдЪрд╛ рдХреЛ рдЬрд╛рд░реА рд░рдЦреЗрдВред
@Antitoxic рдХреЗ рдЕрд▓рд╛рд╡рд╛ (рдХреЛрдИ рднреА рдЗрд░рд╛рджрд╛ рдирд╣реАрдВ) рдиреЗ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдХрд░ рджрд┐рдпрд╛ рдХрд┐ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╣рд╛рдБ рддрдХ рдЙрдкрдпреЛрдЧреА рд╣реИ рдпрд╛ рдирд╣реАрдВ, рд╣рдореЗрдВ рдкрддрд╛ рд╣реИ рдХрд┐ рдЙрдирдХреЗ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХреЗ рдХрд╛рд░рдг рдЕрдиреНрдп рдореБрджреНрджреЗ рдХрд┐рддрдиреЗ рдЦрд░рд╛рдм рд╣реЛ рдЧрдП рд╣реИрдВ рдЗрд╕рд▓рд┐рдП рдЕрдм рд╕реБрдирдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ

рдпрд╣ рдареАрдХ рд╣реИ рдорд╛рд░реНрдХ рдЖрдк рдореЗрд░реА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрддрдиреА рд╢рд╛рдирджрд╛рд░ рдмрд╛рддрдЪреАрдд рдХреНрдпреЛрдВ рдмрд┐рдЧрд╛рдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ?

@jdubray рдХреЗрд╡рд▓ рдЖрдк рдЗрд╕реЗ рд╢рд╛рдирджрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦрддреЗ рд╣реИрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рд╕рднреА рдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк "рд▓рд╛рдордкреЛрд░реНрдЯ рдХреЛ рдЯреНрдпреВрд░рд┐рдВрдЧ рдЕрд╡рд╛рд░реНрдб рдорд┐рд▓рд╛ рд╣реИ, рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рддрд░реНрдХреЛрдВ рдХреЗ рдмрд┐рдирд╛ рд╣рдореЗрдВ рдХреБрдЫ рдмреЗрдЪрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗ, рддреЛ рдореБрдЭреЗ рд╕реБрдиреЗрдВ, рдореИрдВ рд╕рд╣реА рд╣реВрдБ!"ред

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

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

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдк рд╣рдореЗрд╢рд╛ рдЕрдкрдиреА рд╕рднреА рдкреЛрд╕реНрдЯ рдореЗрдВ I believe everyone agrees on that рдЬреИрд╕реЗ рд╢рдмреНрджреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЕрдЪреНрдЫрд╛, рд╕рд╣рд╛рдпрдХ рдпрд╛ рд╕реНрд╡рд╛рдЧрдд рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реИред рд╣рдо рд╕рднреА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЖрдкрдХреЗ рд╕рд╛рде рд╕рд╣рдордд рдирд╣реАрдВ рд╣реИрдВ, рдФрд░ рд╣рдо рдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдПрд░рд┐рдХ рдХреЗ рдкреЗрдкрд░ рдХреЛ рдирд╣реАрдВ рдкрдврд╝реЗрдВрдЧреЗ рдФрд░ рди рд╣реА рдкрдврд╝реЗрдВрдЧреЗред рдпрджрд┐ рдЖрдк рд▓реЛрдЧреЛрдВ рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рдврдВрдЧ рд╕реЗ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдЙрдиреНрд╣реЗрдВ рдмрд┐рдирд╛ рдХрд╛рдЧрдЬ рдХреЗ рдкрд╣рд▓реЗ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣реЗрдВ, рдФрд░ рдЙрдиреНрд╣реЗрдВ рдпрд╣ рдорд╣рд╕реВрд╕ рдХрд░рд╛рдПрдВ рдХрд┐ рдЕрдЧрд░ рд╡реЗ рдЖрдкрд╕реЗ рдЕрд╕рд╣рдордд рд╣реИрдВ рдпрд╛ рдЕрд╕рд╣рдордд рд╣реИрдВ, рддреЛ рдпрд╣ рдЖрдкрдХреЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рдлреИрд▓рд╛рдиреЗ рдореЗрдВ рдорджрдж рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред

рдЖрдк TLA + рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдереЛрдбрд╝рд╛ рд╕рд╛ рд╣реИ рдЬреИрд╕реЗ рдЖрдк рд╢рд┐рдХрд╛рдпрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдиреЗ рдЪрдВрджреНрд░рдорд╛ рдХреЛ рд░реЙрдХреЗрдЯ рднреЗрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдереА, рдпрд╣ рдорд╛рдирдХрд░ рдХрд┐ рдкреГрдереНрд╡реА рд╕рдкрд╛рдЯ рдереА рдФрд░ рдЕрдВрддрд░рд┐рдХреНрд╖ рдпрд╛рди рдХреЛ рдЪрд▓рд╛рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрдард┐рди рдерд╛ред

рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рд╕рд╛рджреГрд╢реНрдп рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдкрд╣рд▓рд╛ рд╕рд┐рджреНрдзрд╛рдВрдд рдирд╣реАрдВ рд╣реИред рдЧрдВрднреАрд░рддрд╛ рд╕реЗ, рдХреНрдпрд╛ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдХрдерди рдХреЛ "рд╢рд╛рдирджрд╛рд░ рдЪрд░реНрдЪрд╛" рдорд╛рдирд╛ рдЬрд╛рдирд╛ рд╣реИ?

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

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

рд╢рд╛рдпрдж @gaearon рдХреЛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ рдФрд░

@Niondir рдореИрдВ рдЙрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ
рдпрд╣ рдПрдХ рдкреИрдЯрд░реНрди рдпрд╛ рдирд┐рдпрдореЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╣реИ

  • рдЕрдкрдиреЗ рд╕рдЧрд╛рдУрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░реЗрдВ рддрд╛рдХрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рдкрд╛рд╕ рдПрдХ put ред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ put рд╕реЗ рдЕрдзрд┐рдХ рдХреЗ рд╕рд╛рде sagas рд╣реИрдВ, рддреЛ рдЙрдиреНрд╣реЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░реЗрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ call рдкреНрд░рднрд╛рд╡ рдХреЗ рд╕рд╛рде рд╢реНрд░реГрдВрдЦрд▓рд╛ рджреЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП
function* mySaga() {
  yield put(action1());
  yield put(action2());
}

// split into

function* mySaga() {
  yield put(action1());
  yield call(myNextSaga);
}

function* myNextSaga() {
  yield put(action2());
}
  • take рдкреНрд░рднрд╛рд╡ рд╡рд╛рд▓реЗ рд╕рдЧрд╛рдУрдВ рдХреЛ рдЙрд╕ рддрд░реНрдХ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ take рдФрд░ рдЧрд╛рдерд╛ рдХреЗ рд╢реБрд░реБрдЖрддреА рдмрд┐рдВрджреБ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП
function* mySaga() {
  yield take(ACTION);
  // logic
}

// split it into

function* rootSaga() {
  yield takeLatest(ACTION, mySaga);
}

function* mySaga() {
  // logic
}
  • рдкреНрд░рддреНрдпреЗрдХ рдЧрд╛рдерд╛ рдХреЗ рд▓рд┐рдП рдПрдХ "рдЪреЗрдХрдкреЙрдЗрдВрдЯ" рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд░рд╛рдЬреНрдп рд╕реЗ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рд╡рд╣рд╛рдВ рд╕реЗ call рдЧрд╛рдерд╛ рдЬрд┐рд╕рдХреА рдЖрдкрдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
function* rootSaga() {
  // emit all forks and take effects that need to run in the background
  yield call(recoverCheckpoint);
}

function* recoverCheckpoint() {
  const state = yield select();
  if (state.isFetching) {
    // run the saga that left the state like this
  }
}

рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреНрдпреЛрдВ рдпрд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛ рдорд╛рдиреНрдпрддрд╛рдУрдВ рдХреЗ рдПрдХ рд╕реЗрдЯ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ рдЬреЛ рдЖрдо рддреМрд░ рдкрд░ рд╕рдЪ рд╣реИ

  • take рдкреНрд░рднрд╛рд╡реЛрдВ рдХреЛ рд╕реНрдЯреЛрд░ рдореЗрдВ рднреЗрдЬреЗ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЗрд╕рдХреА рддрд┐рдЬреЛрд░реА рдХреЛ рд╣рдореЗрд╢рд╛ рдЗрди рд╕рд╛рдЧреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рднрд▓реЗ рд╣реА рдЖрдк рдареАрдХ рд╣реЛ рд░рд╣реЗ рд╣реЛрдВ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рддрдм рддрдХ рдирд┐рд╖реНрдХреНрд░рд┐рдп рд░рд╣рддреЗ рд╣реИрдВ рдЬрдм рддрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреЗрдЬ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдФрд░ / рдпрд╛ рд╕рд╛рдЧрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЪрд▓ рд░рд╣рд╛ рд╣реИред
  • рдкреНрд░рддрд┐ рдЧрд╛рдерд╛ рдПрдХ put рдЕрдиреБрдорддрд┐ рди рджреЗрдиреЗ рд╕реЗ рд░рд╛рдЬреНрдп рдореЗрдВ рдкрд░рдорд╛рдгреБ рдкрд░рд┐рд╡рд░реНрддрди рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓рддреА рд╣реИ, рдЙрд╕реА рддрд░рд╣ рдПрдХ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЗрд╡рд▓ рд░рд╛рдЬреНрдп рдХреЛ рдПрдХ рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдмрджрд▓ рд╕рдХрддреА рд╣реИ рдПрдХ рдЧрд╛рдерд╛ рдЙрд╕ рдХреНрд╖рдорддрд╛ рддрдХ рд╣реА рд╕реАрдорд┐рдд рд╣реИ, рдЬреЛ рддрд░рд╣ рддрд░рд╣ рдХреЗ рдмрдирд╛рддрд╛ рд╣реИ рд╕рд╛рдЧрд╛ рдФрд░ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдкреНрд░реЗрд╖рдг рдХреЗ рдмреАрдЪ рдПрдХ рд╕рдВрдмрдВрдзред

рдЗрд╕ рддрд░рд╣ рд╕реЗ рдмрдВрдЯрд╡рд╛рд░реЗ рдХрд░рдиреЗ рд╕реЗ рдХреБрдЫ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдкреНрд░рднрд╛рд╡ рдкрдбрд╝рддреЗ рд╣реИрдВред

  • рд╕рдЧрд╛ рдЕрдзрд┐рдХ рдкреБрди: рдкреНрд░рдпреЛрдЬреНрдп рд╣реИрдВ
  • рд╕рдЧрд╛ рдЕрдзрд┐рдХ рдЖрд╕рд╛рдиреА рд╕реЗ рдмрджрд▓ рдЬрд╛рддреЗ рд╣реИрдВ
  • рд╕рдЧрд╛ рд╕рдордЭрдиреЗ рдореЗрдВ рдЖрд╕рд╛рди рд╣реИрдВ

рд▓реЗрдХрд┐рди @ рджреБрдХрд╛рдирджрд╛рд░ :

рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧреЛрдВ рдХреЛ рдпрд╣ "рдордЫрд▓реА рдкрдХрдбрд╝рдиреЗ рдХрд╛ рдЦреЗрд▓" рдирдореВрдирд╛ рдмрд╣реБрдд рджрд┐рд▓рдЪрд╕реНрдк рд▓рдЧрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкрд╣рд▓реА рдмрд╛рд░ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдПрд╕рдПрдПрдо рдЕрдкрдиреА рд╕рдВрдкреВрд░реНрдгрддрд╛ рдореЗрдВ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдЧрддрд┐рд╢реАрд▓ рд░рд╛рдЬреНрдп рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдФрд░ "рдЕрдЧрд▓реА-рдХрд╛рд░реНрд░рд╡рд╛рдИ-рд╡рд┐рдзреЗрдп" рд╢рд╛рдорд┐рд▓ рд╣реИред рдирдк рд╕рдЧрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ Redux рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЛ рддреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ # 1 рдЬреЛ рдХрд┐ рдПрдХ рдПрдХрд▓ рд░рд╛рдЬреНрдп рд╡реГрдХреНрд╖ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдХреНрдпрд╛ рдкрддрд╛ рд╣реИ?

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

рдореИрдВ Meteor рдХреЗ рд╕рд╛рде React / Redux рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореИрдВ рдХреЙрд▓рдмреИрдХ рдХреЗ рд▓рд┐рдП Redux рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ Mongo.Collection.observeChanges рднреЗрдЬрдХрд░ Immutable.js рд░рд╛рдЬреНрдп рдореЗрдВ mongo рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реВрдВред рдореИрдВрдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдкрд╛рдпрд╛ рдХрд┐ рдЬрдм рдХрдИ рд╣рдЬрд╝рд╛рд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реА рдЧрдИ рдереА, рддреЛ рдпреВрдЖрдИ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рдмреЗрд╣рдж рд╕реБрд╕реНрдд рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рд╣рдЬрд╛рд░реЛрдВ Redux рдХрд╛рд░реНрд░рд╡рд╛рдЗрдпрд╛рдБ рдкреНрд░реЗрд╖рд┐рдд рд╣реЛ рд░рд╣реА рдереАрдВ рдХреНрдпреЛрдВрдХрд┐ рдЙрд▓реНрдХрд╛ рдиреЗ рдПрдХ-рдПрдХ рдХрд░рдХреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕рджрд╕реНрдпрддрд╛ рдХреЗ рдкрд░рд┐рдгрд╛рдо рднреЗрдЬреЗ, рдЬрд┐рд╕рд╕реЗ рд╣рдЬрд╛рд░реЛрдВ Immutable.js рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдФрд░ рд╣рдЬрд╛рд░реЛрдВ рд░реЗрдВрдбрд░ рдХреЗ рд░реВрдк рдореЗрдВ рддреЗрдЬрд╝ рд╣реЛ рдЧрдП рдпрдерд╛рд╕рдВрднрд╡ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ RethinkDB рднреА рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИред

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

@ jedwards1211 рдореБрдЭреЗ рдПрдХ рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛ рд╣реИ (рдмрд╣реБрдд рд╕реЗ рдЫреЛрдЯреЗ рд╕рдВрджреЗрд╢ рдЬреЛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдбреЗрдЯрд╛ рдХреА рд░рдЪрдирд╛ рдХрд░реЗрдВрдЧреЗ)ред

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

@andreieftimie рд╣рд╛рдБ, рдпрд╣ рдореЗрд░реЗ рдРрдк рдореЗрдВ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдХреБрдЫ рдпреВрдЖрдИ рдЗрдВрдЯрд░реИрдХреНрд╢рди рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рддрддреНрдХрд╛рд▓ рдЕрдкрдбреЗрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬреИрд╕реЗ рдХрд┐

рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рдХреНрдпрд╛ рд╣реИ, рдореБрдЭреЗ "рд╢рд╛рдЦрд╛рдПрдВ" рдмрдирд╛рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдерд╛ред рдпрд╣ рдПрдХрд▓ рд╕реНрдЯреЛрд░ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рдордЭреМрддрд╛ рдерд╛ред

https://github.com/stephenbunch/redux-branch

@ jedwards1211 рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬреИрд╕реЗ-рдЬреИрд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЬрдЯрд┐рд▓рддрд╛ рдореЗрдВ рдмрдврд╝рддреЗ рд╣реИрдВ, рдЕрдВрддрддрдГ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ рдбреЗрдЯрд╛ рдФрд░ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЕрдкрдбреЗрдЯ рдХреЛ рдмрд╛рд╣рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддрд╛рдХрд┐ рдХреБрдЫ рд╕реНрдЯреЛрд░ рдкреВрд░реНрдг рд▓реЛрдб рдХреЛ рд╕рдВрднрд╛рд▓ рдирд╣реАрдВ рд░рд╣реЗ рд╣реИрдВред

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

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

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

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

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

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

рдЕрдЧрд░ рдореИрдВ рдЖрдЬ рдПрдХ рдЬрдЯрд┐рд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛ рд░рд╣рд╛ рдерд╛, рддреЛ рдореИрдВ рдХреБрдЫ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕реНрдЯреЛрд░ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд Redux-like рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп рд╕реНрдЯреЛрд░ рдХреНрд▓рд╛рд╕ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░реВрдБрдЧрд╛ред рдореЛрдЯреЗ рддреМрд░ рдкрд░:

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

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

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

@ jedwards1211 рдРрд╕реЗ рдХреБрдЫ рдорд╛рдорд▓реЗ рд╣реИрдВ

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

рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдХреБрдЫ рдПрдиреАрдореЗрд╢рди рд╡рд┐рд╡рд░рдг рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рд░рд╛рдЬреНрдп рдХрд╛ рдкреЗрдбрд╝ рд╣реЛрдиреЗ рд╕реЗ рдЖрдк рд╕реНрдерд╛рдиреАрдп рд░рд╛рдЬреНрдп рдХреА рдХрдореА рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд╛рдо рдХрд░ рдкрд╛рдПрдВрдЧреЗ, рддрд╛рдХрд┐ рдЖрдк рдПрдирд┐рдореЗрд╢рди рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░ рд╕рдХреЗрдВ, рдПрдирд┐рдореЗрд╢рди рдПрдХ рдЕрд╡рдзрд┐ рдХреЗ рд▓рд┐рдП рдЪрд▓рд╛рдП рдЬрд╛ рд╕рдХреЗрдВ, рдФрд░ рдмрд╣реБрдд рдХреБрдЫред

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


рдЕрдм рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЬрд╣рд╛рдВ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреБрдЫ рдПрдиреАрдореЗрд╢рди рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕реНрдерд╛рдиреАрдп рд░рдЦрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИ - рдЗрд╕рдХреЗ рдКрдкрд░ рдПрдХ рд░рд┐рдПрдХреНрдЯ-рдЖрдзрд╛рд░рд┐рдд UI рдХреЗ рд╕рд╛рде рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЧреЗрдо рдХрд╛ рдирд┐рд░реНрдорд╛рдгред

  • рдЖрдорддреМрд░ рдкрд░ рдЖрдк рдЧреЗрдо рдХреЛ рдЯрд┐рдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЪрд▓рд╛рдПрдВрдЧреЗ ... рдЧреЗрдо рдХрд╛ рд╕рдордп 0 рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдпрд╣ рд╣рд░ рдлреНрд░реЗрдо рдореЗрдВ рдмрдврд╝рд╛ рд╣реБрдЖ рд╣реЛрддрд╛ рд╣реИред рдХреЛрд░ рдЧреЗрдо рдПрдирд┐рдореЗрд╢рди рдХреИрдирд╡рд╛рд╕ рдкрд░ рдпрд╛ рд╡реЗрдмрдЬреАрдПрд▓ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдХреЛрдИ рд╕реНрдерд╛рдиреАрдп рд╕реНрдерд┐рддрд┐ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк рдЗрди рдЯрд┐рдХреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдиреАрдореЗрд╢рди рд╢реБрд░реВ рд╕рдордп рдФрд░ рдкреНрд░рдЧрддрд┐ рдХреЛ рдЖрдзрд╛рд░ рдмрдирд╛рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред

Ex: рдПрдХ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдХреИрд░реЗрдХреНрдЯрд░ рдореЗрдВ 10 рдлрд╝реНрд░реЗрдореЛрдВ рд╡рд╛рд▓рд╛ рдПрдХ рдПрдиреАрдореЗрд╢рди рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдЖрдк ~ 400ms рд╕реЗ рдЕрдзрд┐рдХ рдХреЗ рдПрдирд┐рдореЗрд╢рди рдХреЛ рдЦреЗрд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЖрдк рд╕реНрдкреНрд░рд╛рдЗрдЯ рдХреЛ рдкреНрд░рддреНрдпреЗрдХ 2 рдЯрд┐рдХреНрд╕ рдпрд╛ рдЙрд╕рдХреЗ рдмрд╛рдж рд╕реЗ рдмрджрд▓рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред

рдпрджрд┐ рдЖрдк рдЙрдЪреНрдЪ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЗ рдЯрд┐рдХреНрд╕ рднреА рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

  • рдЖрдкрдХрд╛ рдЧреЗрдо рд░реБрдХ рднреА рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЖрдк рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдпреВрдЖрдИ рдкрдХреНрд╖ рдореЗрдВ рдХрд┐рдП рдЧрдП рдХреБрдЫ рдПрдирд┐рдореЗрд╢рди рдХреЛ рд░реЛрдХ рд╕рдХрддреЗ рд╣реИрдВред

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

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

рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, Redux рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╛рд░рдВрдн / рд╕реНрдЯреЙрдк рдЯрд╛рдЗрдо рдкрд╛рд╕ рдХрд░рдиреЗ рдФрд░ рдШрдЯрдХреЛрдВ рдХреЛ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рд░рд╛рдЬреНрдп рдХреЗ рдмрд╛рдХреА рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рджреНрд╡рд╛рд░рд╛ рдПрдирд┐рдореЗрд╢рди рдХрд╛ рд╕рдордиреНрд╡рдп рдХрд░рдирд╛ рдмрд╣реБрдд рдмреЗрд╣рддрд░ рд╣реИред

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

@jsonnull рд╢рд╛рдВрдд, рдпрд╣ рдПрдХ рдорд╣рд╛рди рдЙрджрд╛рд╣рд░рдг рд╣реИ, рдЬреЛ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рдореИрдВ рдмрд╕ рдЗрддрдирд╛ рдХрд╣реВрдВрдЧрд╛ - Redux рдореЗрдВ рдЖрдк рд╕рд┐рд░реНрдл рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдПрдХ рджреВрд╕рд░реЗ рд╕реЗ рд▓рд┐рдВрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП - рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдкрд╛рд╕ рдХрдИ рдкреЛрд╕реНрдЯ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкреЛрд╕реНрдЯ рдореЗрдВ рдХрдИ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ рдФрд░ рдореИрдВ рдЙрди рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдПрдХ рддрд░рд╣ рд╕реЗ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ:

var user = {id: 'user1', posts: [], comments: []}
var post = {id: 'post1', user: user, comments: []}
user.posts.push(post);
var comment = {id: 'comment1', post: post, user: user}
post.coments.push(comment)
user.comments.push(comment)
appState.user = user

Redux рдкрд░рд┐рдкрддреНрд░ рд╕рдВрджрд░реНрдн рдХреЗ рд╕рд╛рде рдСрдмреНрдЬреЗрдХреНрдЯ рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред Mobx (рдпрд╛ рд╕реЗрд▓рдПрдХреНрд╕) рдореЗрдВ рдЖрдк рдмрд╕ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рд╛рде рдПрдХ-рд╕реЗ-рдХрдИ рдФрд░ рдХрдИ-рд╕реЗ-рдХрдИ рд╕рдВрджрд░реНрдн рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рдХрдИ рдмрд╛рд░ рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рддрд╛ рд╣реИ

@bgnorlov рдореИрдВ redux рдкреИрдХреЗрдЬ рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╕реЛрдЪрддрд╛ рд╣реВрдВ рдЬреИрд╕реЗ рдЖрдк рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдкрд░рд┐рдкрддреНрд░ рд╕рдВрджрд░реНрднреЛрдВ рдХреЛ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВ - рд╡реЗ рд╕рд┐рд░реНрдл рдЖрдкрдХреЗ reducer рдореЗрдВ рдЖрдкрдХреЗ state рдХреЛ рдХреНрд▓реЛрди рдХрд░рдирд╛ рдЕрдзрд┐рдХ рдХрдард┐рди рдмрдирд╛рддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рд░рд╛рдЬреНрдп рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Immutable.js рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдкрд░рд┐рдкрддреНрд░ рд╕рдВрджрд░реНрдн рдХреЗ рд╕рд╛рде рд░рд╛рдЬреНрдп рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИред

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

var user = {id: 'user1', postIds: [], commentIds: []}
var post = {id: 'post1', userId: user.id, commentIds: []}
user.postIds.push(post.id);
var comment = {id: 'comment1', postId: post.id, userId: user.id}
post.commentIds.push(comment.id)
user.commentIds.push(comment.id)
appState.userId = user.id
appState.posts = {[post.id]: post}
appState.comments = {[comment.id]: comment}

// then join things like so:
var postsWithComments = _.map(appState.posts, post => ({
  ...post,
  comments: post.commentIds.map(id => appState.comments[id]),
})

@ jedwards1211 рдХреЛ рдХреНрд▓реЛрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╛рдЬреНрдп рдХреЗ рд╕рд╛рде
рд╕рд╛рдорд╛рдиреНрдпреАрдХрд░рдг рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде рдЬрдм рдХрд┐рд╕реА рдШрдЯрдирд╛ рд╣реИрдВрдбрд▓рд░ рдХреЛ рдХреБрдЫ рдбреЗрдЯрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рдЙрд╕реЗ рд╡реИрд╢реНрд╡рд┐рдХ рд░рд╛рдЬреНрдп рд╕реЗ рдЖрдИрдбреА рджреНрд╡рд╛рд░рд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╣рд░ рдмрд╛рд░ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП - рдореБрдЭреЗ рдЗрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдореЗрдВ рдХрд╣реАрдВ рдХрд╛рдо рдХреЗ рднрд╛рдИ-рдмрд╣рдиреЛрдВ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рдкрджрд╛рдиреБрдХреНрд░рдорд┐рдд рд╕рдВрд░рдЪрдирд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ) redux рдХреЗ рд╕рд╛рде рдореБрдЭреЗ рдРрдк рд╕реНрдЯреЗрдЯ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдердВрдХ рдХреЛ рднреЗрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ

var prevTask = dispatch((_, getState)=>getState().tables.tasks[task.parentId]).children.map(childId=>dispatch((_, getState)=>getState().tables.tasks[childId])).filter(task=>...) [0]

рдпрд╛ рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╕рд╛рде

var prevTask = dispatch(getTaskById(task.parentId)).children.map(childId=>dispatch(getTaskById(childId)).filter(task=>...)[0]

рдФрд░ рдпрд╣ рдмреЙрдпрд▓рд░рдкреНрд▓реЗрдЯ рдХреЛрдб рдореЗрдВ рдЧрдбрд╝рдмрдбрд╝реА рдХреА рддреБрд▓рдирд╛ рдореЛрдмреЗрдХреНрд╕ рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рдХрд░рддрд╛ рд╣реИ рдЬрдм рдореИрдВ рдмрд╕ рд▓рд┐рдЦ рд╕рдХрддрд╛ рд╣реВрдВ

var prevTask = task.parent.children.filter(task=>...)[0]

@ jedwards1211 , @bgnorlov : FWIW, рдпрд╣ рдПрдХ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдореБрдЭреЗ Redux-ORM рдХреНрдпреЛрдВ рдкрд╕рдВрдж рд╣реИред рдпрд╣ рдЖрдкрдХреЛ рдЕрдкрдиреЗ Redux рд╕реНрдЯреЛрд░ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рд░рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрди рд╕рдВрдмрдВрдзрдкрд░рдХ рдЕрдкрдбреЗрдЯ рдФрд░ рд▓реБрдХрдЕрдк рдХреЛ рд╕рд░рд▓ рдмрдирд╛рддрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╡рд╣ рдЕрдВрддрд┐рдо рдЙрджрд╛рд╣рд░рдг рдореВрд▓ рд░реВрдк рд╕реЗ Redux-ORM рдХреЗ рд╕рдорд╛рди рд╣реИред

рдореИрдВрдиреЗ Redux-ORM рдореВрд▓ рдмрд╛рддреЗрдВ , рд╕рд╛рде рд╣реА рд╕рд╛рде рдХреЛрд░ рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдФрд░ рдЙрдиреНрдирдд рдЙрдкрдпреЛрдЧ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реБрдП рдПрдХ рджреЛ рдмреНрд▓реЙрдЧ рдкреЛрд╕реНрдЯ рд▓рд┐рдЦреЗред

@markersonson рд╢рд╛рдВрдд, рдЯрд┐рдк рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

@gaearon

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

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

рдПрдХ рдХреЛрдгреАрдп рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЧреИрд░-рдлреНрд▓рдХреНрд╕ / рд░рд┐рдбрдХреНрд╕ рдкреГрд╖реНрдарднреВрдорд┐ рд╕реЗ рдЖрдиреЗ рдкрд░ рдЙрд╕ рд╡рд┐рдЪрд╛рд░ рдХреЛ рдЕрдкрдиреЗ рджрдо рдкрд░ рддреИрдпрд╛рд░ рдХрд░рдирд╛ рдмрд╣реБрдд рдХрдард┐рди рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЬрдм рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдЕрднреА рднреА рдЯреЗрдХреНрд╕реНрдЯ рдмреЙрдХреНрд╕ рдореЗрдВ рд╣рд░ рдХреА-рдЕрдк рдХреЗ рд▓рд┐рдП рдХреНрд░рд┐рдпрд╛ рдмрдирд╛рддреЗ рд╣реИрдВред рдХрд╛рд╢ рдХреЛрдИ рди рдХреЛрдИ рдЙрд╕ рдмреЛрд▓реА рдХреЛ рд╣рд░ Redux рдкреНрд░рд▓реЗрдЦрди рдкреГрд╖реНрда рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ 50px рдкрд╛рда рдореЗрдВ рд▓рдЧрд╛ рджреЗрддрд╛ред

@leff рд╕рд╣рдорддред рдореИрдВрдиреЗ рдЙрд╕ рд╕рдЯреАрдХ рд╡рд┐рдЪрд╛рд░ рдХреЛ рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ рд╕рдВрд╢реНрд▓реЗрд╖рд┐рдд рдХрд┐рдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рдмрд╛рд╣рд░ рдирд╣реАрдВ рдирд┐рдХрд▓рд╛ред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдЧрд░ рдЖрдк рдЗрддрд┐рд╣рд╛рд╕ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП Redux рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЕрдХреНрд╕рд░ рдПрдХ рдмрд╣реБрдд рд╣реА рдЕрд▓реНрдкрдХрд╛рд▓рд┐рдХ рд╕реНрдерд┐рддрд┐ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕реЗ рдЖрдкрдХреЗ Redux рд╢реИрд▓реА рдХреЗ рд░рд╛рдЬреНрдп рдкреНрд░рдмрдВрдзрди рдХреЛ рдмреЛрдЭ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред

рдпрд╣ рдЬрд░реВрд░реА рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрд╢реНрдЪрд░реНрдп рд╣реЛ, рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдерд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░рд┐рдкрдХреНрд╡ рдбреЗрд╕реНрдХрдЯреЙрдк рдРрдк рдЬреЛ рдЕрдореАрд░ рдкреВрд░реНрд╡рд╡рдд / рдлрд┐рд░ рд╕реЗ рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди Redux рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЗрди рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЖрдиреЗ рд╡рд╛рд▓реЗ рдирдП рд▓реЛрдЧреЛрдВ рдХреЗ рдорд╣рд╛рд╕рд╛рдЧрд░реЛрдВ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдПрдХ рд░рд╣рд╕реНрдпреЛрджреНрдШрд╛рдЯрди рд╣реЛрдЧрд╛ред

@bgnorlov рдпрд╣ рдПрдХ рдЕрдЪреНрдЫреА рдмрд╛рдд рд╣реИ рдХрд┐

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

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

FWIW, рдбреЙрдХреНрд╕ рдмрддрд╛рддреЗ рд╣реИрдВ рдХрд┐ рд╣рд░ рдЪреАрдЬ рдХреЛ Redux рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдирд╛ рд╣реИ, рдкреНрд░рддрд┐ http://redux.js.org/docs/faq/OrganizingState.html#organizing -state-only-redux-stateред

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

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

рдпрджрд┐ рдЖрдкрдХреЛ рдХрднреА рднреА reducers рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдФрд░ рдЖрдкрдХреЗ redux рд░рд╛рдЬреНрдп рдореЗрдВ "рд╕рдм-рд╕реНрдЯреЗрдЯреНрд╕" рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛ, рддреЛ рдореИрдВрдиреЗ рдЗрд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд▓рдЧрдЗрди рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ (рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдПрдХреАрдХрд░рдг рдХреЗ рд╕рд╛рде)

https://github.com/eloytoro/react-redux-uuid

@eloytoro IMO рдЕрдЧрд░ рдЖрдкрдХреЛ рд░рд┐рдбреНрдпреВрд╕рд░ рд╕реЗ рдкрд░реЗрд╢рд╛рдиреА рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдПрдХ рдореБрджреНрджрд╛ рдЦреЛрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП ... рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдкрд╣рд▓реЗ рдпрд╣ рдЕрд╕реНрд╡реАрдХрд╛рд░реНрдп рдбрд┐рдЬрд╛рдЗрди рдЕрднреНрдпрд╛рд╕ рдмрди рдЬрд╛рдПрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рд▓реЛрдЧ рдкреБрди: рдкреНрд░рдпреЛрдЬреНрдп reducer / рдПрдХреНрд╢рди рд╕реАрдЦрддреЗ рд╣реИрдВ рдирд┐рд░реНрдорд╛рддрд╛ рдкреИрдЯрд░реНрдиред

@eloytoro рдореИрдВ рдРрд╕рд╛ рд╣реА рдХреБрдЫ рд▓рд┐рдЦрдиреЗ рдЬрд╛ рд░рд╣рд╛ рдерд╛ред рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж!

@ jedwards1211 рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЧрд▓рдд рд╡рд┐рдЪрд╛рд░ рдорд┐рд▓рд╛ред рдореИрдВрдиреЗ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдЙрдирдХреЗ рд╕рд╛рде рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ reducers рдпрд╛ рдореБрджреНрджреЛрдВ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рдмрд╕ рдпрд╣ рджрд┐рдЦрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдХреИрд╕реЗ рдореЗрд░реЗ рд╕реНрдирд┐рдкреЗрдЯ reducers рдХреЛ рдЧрддрд┐рд╢реАрд▓ рдЖрдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдкреБрди: рдкреНрд░рдпреЛрдЬреНрдп рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

@ рд╡реЗрд╡рд╕ рдХреЛ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░реЗрдЧрд╛

@eloytoro рдЖрд╣, рдХрд┐ рдЕрдзрд┐рдХ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред

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

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

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

@ mib32 рдЖрдк рд╕рд╣реА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ! рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд▓реЛрдЧ рдЖрдЦрд┐рд░рдХрд╛рд░ рд░рд┐рдПрдХреНрдЯ рдореЗрдВ рдЕрдЪреНрдЫреЗ рдПрдиреАрдореЗрд╢рди рдХреЛ рдХреНрд░рд╛рдлреНрдЯ рдХрд░рдиреЗ рдХреА рдЖрджрдд рдбрд╛рд▓ рд▓реЗрдВрдЧреЗред

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

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

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

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

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

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

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