рдЕрдВрддрд┐рдо рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдШрдЯрдХ

рд░рд┐рдПрдХреНрдЯ рдЗрдХреЛрд╕рд┐рд╕реНрдЯрдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореБрдЭреЗ рдЬреЛ рдкрд╕рдВрдж рд╣реИ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдХрдИ рдлреИрд╕рд▓реЛрдВ рдХреЗ рдкреАрдЫреЗ IDEA рдХрд╛ рд╣рд╛рде рд╣реИред рд╡рд┐рднрд┐рдиреНрди рд▓реЗрдЦрдХ рдореМрдЬреВрджрд╛ рдЖрджреЗрд╢ рдХреЗ рд╕рдорд░реНрдерди рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рд▓реЗрдЦ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдФрд░ рд╕рдордЭрд╛рддреЗ рд╣реИрдВ рдХрд┐ рд╕рдм рдХреБрдЫ "рд╕рд╣реА" рдХреНрдпреЛрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рд░ рдХреЛрдИ рд╕рдордЭрддрд╛ рд╣реИ рдХрд┐ рдкрд╛рд░реНрдЯреА рд╕рд╣реА рд░рд╛рд╕реНрддреЗ рдкрд░ рд╣реИред


рдХреБрдЫ рд╕рдордп рдмрд╛рдж, IDEA рдереЛрдбрд╝рд╛ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд╕рдм рдХреБрдЫ рд╢реБрд░реВ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред


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



рд╕рдорд╕реНрдпрд╛


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


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


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


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


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

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


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


рдлреВрдЯ рдбрд╛рд▓реЛ рдФрд░ рдЬреАрддреЛ


рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдШрдЯрдХреЛрдВ рдХреЛ "рдХрдВрдЯреЗрдирд░" рдФрд░ "рдкреНрд░рд╕реНрддреБрддрд┐" рдореЗрдВ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдирдпрд╛ рдирд╣реАрдВ рд╣реИ, рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╡рд░реНрдгрд┐рдд рд╣реИ, рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдереЛрдбрд╝рд╛ рдкреБрд░рд╛рдирд╛ рд╣реЛрдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛ рд╣реИред рдпрджрд┐ рд╣рдо рдбреИрди рдЕрдмреНрд░рд╛рдореЛрд╡ рдХреЗ рдПрдХ рд▓реЗрдЦ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ (рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХрд╛ 99% рдХреНрдпрд╛ рдХрд░рддреЗ рд╣реИрдВ) рдкреНрд░рд╕реНрддреБрдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдкреНрд░рд╕реНрддреБрддрд┐ рдШрдЯрдХ:


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

рдЦреИрд░, рдХрдВрдЯреЗрдирд░ рд╕рднреА рддрд░реНрдХ, рдбреЗрдЯрд╛ рддрдХ рд╕рднреА рдкрд╣реБрдВрдЪ рдФрд░ рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ рд╕рдВрдкреВрд░реНрдг рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╣реИрдВред


рдПрдХ рдЖрджрд░реНрд╢ рджреБрдирд┐рдпрд╛ рдореЗрдВ, рдХрдВрдЯреЗрдирд░ рдЯреНрд░рдВрдХ рд╣реИрдВ, рдФрд░ рдкреНрд░рд╕реНрддреБрддрд┐ рдШрдЯрдХ рдкрддреНрддрд┐рдпрд╛рдВ рд╣реИрдВред

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


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

рдЖрдЗрдП рдпрд╛рдж рдХрд░реЗрдВ рдХрд┐ рдЗрд╕рдХреЗ рдмрд╛рдж рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ:


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

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

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


рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рдЯреВрд▓рдЯрд┐рдк "?", рдЬрдм рдХреНрд▓рд┐рдХ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЯрд╛рдЗрдк рд╣реА рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред


 import Tooltip from 'react-cool-tooltip'; const MyComponent = () => { <Tooltip> hint: {veryImportantTextYouHaveToTest} </Tooltip> } 

рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХреИрд╕реЗ рдХрд░реЗрдВ? рдорд╛рдЙрдВрдЯ + рдХреНрд▓рд┐рдХ + рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣рд╛ рд╣реИред рдпрд╣ рдПрдХ рдПрдХреАрдХрд░рдг рдкрд░реАрдХреНрд╖рдг рд╣реИ, рдПрдХ рдЗрдХрд╛рдИ рдирд╣реАрдВ рд╣реИ, рдФрд░ рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рд▓рд┐рдП "рд╡рд┐рджреЗрд╢реА" рдШрдЯрдХ рдкрд░ рдХреИрд╕реЗ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдЙрдерд▓реЗ рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХреЛрдИ рджрд┐рдорд╛рдЧ рдФрд░ "рд╡рд┐рджреЗрд╢реА рдШрдЯрдХ" рдЦреБрдж рдирд╣реАрдВ рд╣реИрдВред рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рджрд┐рдорд╛рдЧ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЯреВрд▓рдЯрд┐рдк рдПрдХ рдХрдВрдЯреЗрдирд░ рд╣реИ, рдЬрдмрдХрд┐ MyComponent рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдкреНрд░рд╕реНрддреБрддрд┐ рд╣реИред


 jest.mock('react-cool-tooltip', {default: ({children}) => childlren}); 

рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рдХреВрд▓-рдЯреВрд▓рдЯрд┐рдк рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред "рдШрдЯрдХ" рддреЗрдЬреА рд╕реЗ рдмрд╣реБрдд рдХрдордЬрд╝реЛрд░ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдмрд╣реБрдд рдХрдо, рдмрд╣реБрдд рдЕрдзрд┐рдХ рдкрд░рд┐рдорд┐рдд ред


рдЕрдВрддрд┐рдо рдШрдЯрдХ


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

рдЕрдВрддрд┐рдо рдШрдЯрдХ рдПрдХ рдЧрд┐рдпрд░ рд╣реИ рдЬреЛ рдПрдХ рдмрдбрд╝реЗ рддрдВрддреНрд░ рд╕реЗ рдирд┐рдХрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред


рдкреВрд░рд╛ рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рдирд┐рдХрд╛рд▓рд╛ рдЬрд╛рдПред


рд╕рдорд╛рдзрд╛рди 1 - DI


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


 //    mount     const PageChrome = ({children, aside}) => ( <section> <aside>{aside}</aside> {children} </section> ); //     shallow,       //     mount ? , ,   wiring? const PageChromeContainer = () => ( <PageChrome aside={<ASideContainer />}> <Page /> </PageChrome> ); 

рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдорд╛рдорд▓рд╛ рд╣реИ рдЬрдм "рдХрдВрдЯреЗрдирд░ рдЯреНрд░рдВрдХ рд╣реИрдВ, рдФрд░ рдкреНрд░рд╕реНрддреБрддрд┐ рдШрдЯрдХ рдкрддреНрддреЗ рд╣реИрдВ"


рд╕рдорд╛рдзрд╛рди 2 - рд╕реАрдорд╛рдПрдБ


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


рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рд╕реАрдорд╛рдПрдВ рдЖрдкрдХреЛ рдмрдЪрд╛рдПрдВрдЧреА ред


 const Boundary = ({children}) => ( process.env.NODE_ENV === 'test' ? null : children // //  jest.mock ); const PageChrome = () => ( <section> <aside><Boundary><ASideContainer /></Boundary></aside> <Boundary><Page /></Boundary> </section> ); 

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


рд╕рдорд╛рдзрд╛рди 3 - рдЯреАрдпрд░


рд╕реАрдорд╛рдПрдБ рдереЛрдбрд╝реА рдЦреБрд░рджрд░реА рд╣реЛ рд╕рдХрддреА рд╣реИрдВ, рдФрд░ рд▓реЗрдпрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рд╛ рдЬреНрдЮрд╛рди рдЬреЛрдбрд╝рдХрд░ рдЙрдиреНрд╣реЗрдВ рдереЛрдбрд╝рд╛ рдФрд░ рдЖрд╕рд╛рди рдмрдирд╛рдирд╛ рдЖрд╕рд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред


 const checkTier = tier => tier === currentTier; const withTier = tier => WrapperComponent => (props) => ( (process.env.NODE_ENV !== 'test' || checkTier(tier)) && <WrapperComponent{...props} /> ); const PageChrome = () => ( <section> <aside><ASideContainer /></aside> <Page /> </section> ); const ASideContainer = withTier('UI')(...) const Page = withTier('Page')(...) const PageChromeContainer = withTier('UI')(PageChrome); 

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


рдФрд░ рдХреБрдЫ рднреА рдЗрди рд╕реАрдорд╛рдУрдВ рдХреЛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИред


рд╕рдорд╛рдзрд╛рди 4 - рдЕрд▓рдЧ рдЪрд┐рдВрддрд╛рдПрдВ


рдпрджрд┐ рд╕рдорд╛рдзрд╛рди (рдкрд░рд┐рднрд╛рд╖рд╛ рджреНрд╡рд╛рд░рд╛) рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рдЕрд▓рдЧрд╛рд╡ рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИ - рдЕрдЧрд░ рд╣рдо рдЙрдиреНрд╣реЗрдВ рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЕрд▓рдЧ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?


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


рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рд░рдирдЯрд╛рдЗрдо рдореЗрдВ рд░рд╛рдЗрдЯ рдПрдХ рдирд╛рдо рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рдмреАрдЪ рдПрдХ рд░реЗрдЦрд╛ рдЦреАрдВрдЪрддрд╛ рд╣реИ?


 const PageChrome = () => ( <section> <aside><ASideContainer /></aside> <Page /> </section> ); // remove all components matching react-redux pattern reactRemock.mock(/Connect\(\w\)/) // all any other container reactRemock.mock(/Container/) 

рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рдкреНрд▓рд╕ рдПрдХ рд▓рд╛рдЗрди, рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рд░рд┐рдореЙрдХ рдЙрди рд╕рднреА рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЛ рд╣рдЯрд╛ рджреЗрдЧрд╛ рдЬреЛ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред


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


 import {createElement, remock} from 'react-remock'; //  "" const ContainerCondition = React.createContext(true); reactRemock.mock(/Connect\(\w\)/, (type, props, children) => ( <ContainerCondition.Consumer> { opened => ( opened ? ( // ""     <ContainerCondition.Provider value={false}> {createElement(type, props, ...children)} <ContainerCondition.Provider> ) // "" : null )} </ContainerCondition.Consumer> ) 

рдлрд┐рд░ рд╕реЗ - рд▓рд╛рдЗрдиреЛрдВ рдФрд░ рдЧрд┐рдпрд░ рдХреЗ рдПрдХ рдЬреЛрдбрд╝реЗ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ред


рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░


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


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


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

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


All Articles