SharedState рдШрдЯрдХ рдкрд░рд┐рд╡рд░реНрддрди рд╕реНрдерд┐рддрд┐ рдЕрдзрд┐рд╕реВрдЪрдирд╛

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

рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рд▓рд┐рдВрдХ

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


рдЕрджреНрдпрддрди рд╡рд┐рдзрд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбреЗрдЯрд╛ рд╕рддреНрдпрд╛рдкрди рдХреЛ рдкреНрд░реАрдлрд╝реНрд░реЗрдо рдХрд░реЗрдВ

рдпрд╛ рд╣рдо рдПрдХ рдмрд╣реБрдд рд╡рд┐рд╢рд┐рд╖реНрдЯ рдШрдЯрдирд╛ рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ "рдЯреНрд░реИрдХ рдХрд┐рдП рдЧрдП" рдШрдЯрдХ рдореЗрдВ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдмрд╛рдж рдореЗрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред


рдПрдХ рдШрдЯрдХ рдореЗрдВ рдПрдХ рдШрдЯрдирд╛ рдХреЗ рд▓рд┐рдП рд╕рджрд╕реНрдпрддрд╛ рдФрд░ рдЗрд╕реЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг

рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдореЗрдВ рдХрдИ рдХрдорд┐рдпрд╛рдВ рд╣реИрдВ, рдЬреЛ рдЬреНрдпрд╛рджрд╛рддрд░ рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИрдВред рдЗрди рдХрдорд┐рдпреЛрдВ рдХрд╛ рдореБрдЦреНрдп рдЖрдо рдХрд╛рд░рдг рдордЬрдмреВрдд рдЬреБрдЯрдирд╛ рдФрд░ рдЬрдЯрд┐рд▓ рд░рдЦрд░рдЦрд╛рд╡ (рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ, рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдФрд░ рд░рд┐рдлреНрд▓реЗрдХреНрдЯрд░ рдХреА рдХреНрд╖рдорддрд╛) рд╣реИред

рдПрдХ рд░рд╛рдЬреНрдп рдЕрдзрд┐рд╕реВрдЪрдирд╛ рд╕рдорд╛рдзрд╛рди рдмрдирд╛рдирд╛


рдЕрдм рдЬрдм рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдРрд╕реА рдкреНрд░рдгрд╛рд▓реА рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдШрдЯрдХреЛрдВ рдХреЗ рдмреАрдЪ рдореЗрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдШрдЯрдХреЛрдВ рдФрд░ рд╕рд╛рдзрдиреЛрдВ рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдз рдХреЛ рдвреАрд▓рд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ, рддреЛ рдЖрдк рд╕рд╛рдорд╛рдиреНрдп рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдореВрд▓реНрдпреЛрдВ рдХреА рдореИрдиреНрдпреБрдЕрд▓ рдЬрд╛рдБрдЪ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ:


рд╕рд╛рдорд╛рдиреНрдп рд╕реНрдерд┐рддрд┐ рдкрд░рд┐рд╡рд░реНрддрди рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдпреЛрдЬрдирд╛

рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ, рдбреЗрдЯрд╛ рдХреЛ рдПрдХ рд╕реНрдерд╛рди рдкрд░, SharedState рдШрдЯрдХ рдХреЗ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдЙрдирдХреЗ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдирд╛ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ


рд╕рд╛рдорд╛рдиреНрдп рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛

рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдХреЗ рд╕реЗрдЯрд░ рдореЗрдВ, рд╣рдо рд░рд╛рдЬреНрдп рдорд╛рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВред

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


SharedEvents рд╕реЗ SharedState рдирд┐рд░реНрднрд░рддрд╛ рдЬреЛрдбрд╝рдирд╛

рдФрд░ рдПрдХ рдХреНрд▓рд╛рд╕ рдмрдирд╛рдПрдВ рдЬреЛ рдПрдХ рд╕реНрдЯреЗрдЯрд╕ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди рдореЗрдВ рдбреЗрдЯрд╛ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП EventData рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реЗред рдЗрд╕рдореЗрдВ рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдирд╛рдо рд╣реЛрдЧрд╛, рд░рд╛рдЬреНрдп рдФрд░ рдЙрд╕рдХрд╛ рдирдпрд╛ рдореВрд▓реНрдп


рдПрдХ рд╡рд░реНрдЧ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдЬрд┐рд╕рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХреА рдЬрд╛рдирдХрд╛рд░реА рд╣реЛ

рдЕрдм рдЖрдкрдХреЛ SharedEvents рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕реЗ SharedState рдШрдЯрдХ рдореЗрдВ рдЧреЗрдо рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣рд╛ рд╣реИ


SharedEvents рдХреЛ рдПрдХ SharedState рдШрдЯрдХ рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛

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


рдЗрдВрдбреЗрдХреНрд╕ рд╕реЗрдЯрд░ рдХреЛ рдмрджрд▓реЗрдВ

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

рдорд╛рди рд▓реЗрдВ рдХрд┐ SecondComponent рд╕реНрдЯреЗрдЯреНрд╕ рдмрджрд▓рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "somedata" рдкреИрд░рд╛рдореАрдЯрд░ рдФрд░ FirstComponent рдШрдЯрдХ рд╕реВрдЪрдирд╛рдУрдВ рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрдХрд░ рд░рд╛рдЬреНрдп рдкрд░рд┐рд╡рд░реНрддрди рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рддрд╛ рд╣реИ

SecondComponent рдореЗрдВ, рд╣рдо рдкреИрд░рд╛рдореАрдЯрд░ рдкрд░рд┐рд╡рд░реНрддрди рдХрд╣рддреЗ рд╣реИрдВ


рдбреЗрдЯрд╛ рдХреЙрд▓ рдмрджрд▓реЗрдВ

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


рд╕рд╛рдорд╛рдиреНрдп рд╕реНрдерд┐рддрд┐ рдмрджрд▓реЗрдВ рдЗрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд┐рдВрдЧ

рдЕрдм, рдпрджрд┐ рдЖрдк рдЦреЗрд▓ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕рд╛рдорд╛рдиреНрдп рд╕реНрдерд┐рддрд┐ рдХреЛ SecondComponent рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рдмрд╛рдж , FirstComponent рдШрдЯрдХ рдореЗрдВ рд╣рдо рдПрдХ рд╕реВрдЪрдирд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗ рдФрд░ рдХрдВрд╕реЛрд▓ рдХреЛ рдбреЗрдЯрд╛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░реЗрдВрдЧреЗ



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

SharedStateComponent рдХреА рд╕рджрд╕реНрдпрддрд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛


рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреА рд╕реВрдЪрдирд╛рдУрдВ рдХреА рд╕рджрд╕реНрдпрддрд╛

рдПрдХ рд╕рд╛рд░ рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝реЗрдВ рдФрд░ рдЗрд╕реЗ рдШрдЯрдирд╛ рд╣реИрдВрдбрд▓рд░ рдореЗрдВ рдмреБрд▓рд╛рдПрдВ


рдмрд╛рд▓ рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рдШрдЯрдирд╛ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдореВрд░реНрдд рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝рдирд╛

рдФрд░ рдЕрдм, FirstComponent рдФрд░ SecondComponent рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдмрд╛рд▓ рдШрдЯрдХ рдореЗрдВ , рдЖрдкрдХреЛ рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдФрд░ рдЗрд╕рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рд╕реНрдерд┐рддрд┐ рдкрд░рд┐рд╡рд░реНрддрди рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╣рдо рдЗрд╕реЗ рдкрд╣рд▓реЗ рдХреА рддрд░рд╣ рд╣реА рдХрдВрд╕реЛрд▓ рдореЗрдВ рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВрдЧреЗ


FirstComponent рдФрд░ SecondComponent рдШрдЯрдХреЛрдВ рдореЗрдВ рдПрдХ рдЕрдореВрд░реНрдд рд╡рд┐рдзрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛

рдФрд░ рдЕрдм рдЬрдм рд╣рдо рдЦреЗрд▓ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рд╣рдо рджреЛрдиреЛрдВ рдШрдЯрдХреЛрдВ рд╕реЗ рдХрдВрд╕реЛрд▓ рдореЗрдВ 2 рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдВ рджреЗрдЦреЗрдВрдЧреЗред



рдорд╣рддреНрд╡рдкреВрд░реНрдг!


рдкрд┐рдЫрд▓реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ, SharedEvents рд╡рд░реНрдЧ рдореЗрдВ рдПрдХ рдмрдЧ рдерд╛ , рдФрд░ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рд╕рджрд╕реНрдпрддрд╛ рд╡рд┐рдзрд┐ рдХреЛ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛:

Source: https://habr.com/ru/post/hi438628/


All Articles