рдпрджрд┐ рдЖрдк рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд╕рд╛рдордиреЗ рдХреЗ рдЫреЛрд░ рдкрд░ рд░реВрдЯрд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рдХреНрдпрд╛ рд╣реИ, рддреЛ рдЖрдк рдЗрд╕ рдирд┐рд╖реНрдХрд░реНрд╖ рдкрд░ рдЖ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рд▓реЛрдХрдкреНрд░рд┐рдп рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рд╡рд┐рдЪрд╛рд░ рд╣реИред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╕рдорд╛рди рдврд╛рдВрдЪреЗ рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╣реБрдП, рд╣рдо рдпрд╣ рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдлрд╝рдВрдХреНрд╢рди рдФрд░ рд░рд╛рдЙрдЯрд┐рдВрдЧ рдПрдкреАрдЖрдИ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рд╣реЛрддреЗ рд╣реИрдВ (рдЕрдХреНрд╕рд░ рдкрд┐рдЫрдбрд╝реЗ рд╕рдВрдЧрддрддрд╛ рдХреЗ рдмрд┐рдирд╛)ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд░рд┐рдПрдХреНрдЯ рдореЗрдВ рд░рд╛рдЙрдЯрд┐рдВрдЧ рдХреЗ 4 рд╡реЗрдВ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЗрддрдиреЗ рдореМрд▓рд┐рдХ рд░реВрдк рд╕реЗ рдкреБрди: рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ githab.com рдкрд░ рдХреБрдЫ рд▓реЛрдХрдкреНрд░рд┐рдп рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рдЗрд╕ рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рд╕реНрд╡рд┐рдЪ рдирд╣реАрдВ рд╣реБрдИрдВред
рдЗрд╕ рд╕рдм рдХреЗ рдкреАрдЫреЗ, рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рд╡реГрддреНрддрд┐ рд╣реИ, рдЬреЛ, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдпрд╣ рд╣реИ рдХрд┐ рдХрдИ рд▓реЛрдХрдкреНрд░рд┐рдп рдлреНрд░рдВрдЯ-рдПрдВрдб рдлреНрд░реЗрдорд╡рд░реНрдХ рдореЗрдВ рд░реВрдЯрд┐рдВрдЧ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЕрддрд┐рднрд╛рд░рд┐рдд рд╣реИред рдЗрд╕ рд╕рдВрдмрдВрдз рдореЗрдВ, рдпрд╣ рдЕрдиреНрдп рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╕рдХрд░ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рд░реВрдЯрд┐рдВрдЧ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдиреЗрд╡рд┐рдЧреЗрд╢рди, рдЗрддрд┐рд╣рд╛рд╕, рд▓рд┐рдВрдХ, рдЖрджрд┐) рд╕реЗ рдЕрд▓рдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╢рд╛рдпрдж, рдХрдИ рд▓реЛрдЧ рдЙрд╕ рднрд╛рд╡рдирд╛ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ рдЬрдм рд░реВрдЯрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрд╕рд╣рдЬ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдмрд╕ рдЕрд╕рдВрднрд╡ рд╣реИред рд▓рдЪреАрд▓реЗ рдФрд░ рдПрдХреНрд╕реНрдЯреЗрдВрд╕рд┐рдмрд▓ рдШрдЯрдХреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ, рд▓реЛрдХрдкреНрд░рд┐рдп рдлреНрд░рдВрдЯ-рдПрдВрдб рдлреНрд░реЗрдорд╡рд░реНрдХ рдореЗрдВ рд░реВрдЯрд┐рдВрдЧ рдмрд╣реБрдд рдХрдо рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдФрд░ рд╡рд┐рд╕реНрддрд╛рд░ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реИред рдпрд╣ рд░рд┐рдПрдХреНрдЯ рдореЗрдВ рд░реВрдЯрд┐рдВрдЧ рдХреЗ рдкрд╣рд▓реЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ (4 рд╡реЗрдВ рддрдХ) рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕рдЪ рд╣реИред
рдЗрд╕ рдкреЛрд╕реНрдЯ рдореЗрдВ рдореИрдВ рдХреБрдЫ рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рдмрд┐рдВрджреБрдУрдВ рдкрд░ рдЧреМрд░ рдХрд░реВрдВрдЧрд╛, рдЬрд┐рд╕рд╕реЗ рд░реВрдЯрд┐рдВрдЧ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдпреВрдирд┐рд╡рд░реНрд╕рд▓-рд░рд╛рдЙрдЯрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рд░рд┐рдПрдХреНрдЯ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреА рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдХрд╛ рдиреЗрддреГрддреНрд╡ рдХрд┐рдпрд╛ рдЧрдпрд╛ред
рдХреНрдпрд╛ рд░реВрдЯрд┐рдВрдЧ рдЖрд╡рд╢реНрдпрдХ рд╣реИ?
рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ, рдПрдХ-рдкреГрд╖реНрда рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдмрд┐рдирд╛ рд░реВрдЯрд┐рдВрдЧ рдХреЗ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬреИрд╕рд╛ рдХрд┐ рдбреЗрд╕реНрдХрдЯреЙрдк рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдХреЛрдИ рд░реВрдЯрд┐рдВрдЧ рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдПрдХ-рдкреГрд╖реНрда рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдПрдХ рд╣реА рд╡реЗрдм рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдирд╣реАрдВ рдмрдирд╛ рд░рд╣рддрд╛ рд╣реИ рддреЛ рд╕рдм рдХреБрдЫ рд▓рдЧрднрдЧ рдареАрдХ рдЪрд▓реЗрдЧрд╛ред рдпрд╣реА рд╣реИ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд┐рд╕реА рднреА рдХреНрд╖рдг рдкреГрд╖реНрда рдХреЛ F5 рдХреБрдВрдЬреА рджрдмрд╛рдХрд░ рдпрд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ "рд░реАрд▓реЛрдб" рдЖрдЗрдХрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рддрд╛рдЬрд╝рд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ "рдмрд╛рдПрдВ рддреАрд░" рдФрд░ "рджрд╛рдПрдБ рддреАрд░" рдЖрдЗрдХрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рдпрд╛ "рдмреИрдХрд╕реНрдкреЗрд╕" рдХреБрдВрдЬреА рджрдмрд╛рдХрд░ рдХрд┐рд╕реА рднреА рд╕рдордп рдХрд╣рд╛рдиреА рдХреЛ рдЖрдЧреЗ рдпрд╛ рдкреАрдЫреЗ рд╕реНрдХреНрд░реЙрд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рдЗрд╕рд▓рд┐рдП, рдПрдХрд▓-рдкреГрд╖реНрда рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рд▓рд┐рдП, рдШрдЯрдХреЛрдВ рдХрд╛ рдПрдХ рдкрд░рд┐рд╡рд░реНрддрди рдФрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреА рдЖрдВрддрд░рд┐рдХ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд╣рдореЗрд╢рд╛ url рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд╕рд╛рде рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рд░реВрдЯрд┐рдВрдЧ рдХреНрдпреЛрдВ рд╣реИ?
рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдлреНрд░рдВрдЯ-рдПрдВрдб рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд▓реЛрдХрдкреНрд░рд┐рдп рд░реВрдкрд░реЗрдЦрд╛рдУрдВ рдореЗрдВ рд░реВрдЯрд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди, рдХреНрд▓рд╛рд╕рд┐рдХ рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рд░рд╛рдЙрдЯрд┐рдВрдЧ (рд╕рд░реНрд╡рд░ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреЗ рд╕рд╛рде) рдХреЗ рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рдХрдиреЗрдХреНрд╢рди рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реИред
рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, url рдПрдХ рд╕реНрдереИрддрд┐рдХ рд╡реЗрдм рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХрд╛ рд╡реЗрдм рдкрддрд╛ рдерд╛, рдФрд░ рдпрд╣ рдмрд╣реБрдд рд╕рд░рд▓ рдерд╛ред рдЕрдЧрд▓рд╛, рд╡реЗрдм рдкрд░ MVC рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХрд╛ рдЕрдиреБрдХреВрд▓рди рд╢реБрд░реВ рд╣реБрдЖ: рдореЙрдбрд▓ 1 рдФрд░ рдореЙрдбрд▓ 2ред рдЙрдирдореЗрдВ рд╕реЗ рдЕрдВрддрд┐рдо рдореЗрдВ рдПрдХ рдлреНрд░рдВрдЯ рдХрдВрдЯреНрд░реЛрд▓рд░ рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЬрд┐рд╕реЗ рдмрд╛рдж рдореЗрдВ рджреЛ рднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛: рд░реВрдЯрд┐рдВрдЧ (рдЬреЛ рд╡рд╛рдВрдЫрд┐рдд рдирд┐рдпрдВрддреНрд░рдХ рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИ) рдФрд░ рдирд┐рдпрдВрддреНрд░рдХ рд╕реНрд╡рдпрдВ, рдЬреЛ рдореЙрдбрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рджреГрд╢реНрдп рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдПрдХ рдХреНрд▓рд╛рд╕рд┐рдХ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ, рд░рд╛рдЙрдЯрд┐рдВрдЧ рдПрдХреНрд╢рди (рдирд┐рдпрдВрддреНрд░рдХ) рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░, рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рд░реВрдк рд╕реЗ (рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ) рд╕рд░реНрд╡рд░ рдкрд░ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рджреГрд╢реНрдп рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред
рдпрд╣реА рд╣реИ, рдбреЗрд╕реНрдХрдЯреЙрдк рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЛ рд╕рд░реНрд╡рд░ рдкрд░ рдХреНрд▓рд╛рд╕рд┐рдХ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдордп рдореЗрдВ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдлрд┐рд░ рд░реВрдЯрд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рдордиреЗ рд▓реМрдЯрд╛, рдЬреЛ рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рдкрд░ рдЖрд╡рд╢реНрдпрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рднрд╛рд░рд┐рдд рдерд╛ред
рдпреВрдирд┐рд╡рд░реНрд╕рд▓-рд░рд╛рдЙрдЯрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреНрдпрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИ?
рдпреВрдирд┐рд╡рд░реНрд╕рд▓-рд░рд╛рдЙрдЯрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЙрди рд╕рднреА рдХреЛ рддреНрдпрд╛рдЧрдиреЗ рдХреА рдкреЗрд╢рдХрд╢ рдХрд░рддреА рд╣реИ рдЬреЛ рдЕрддрд┐-рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИрдВ рдФрд░ рдХреЗрд╡рд▓ рдЙрд╕ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рдЫреЛрдбрд╝ рджреЗрдВ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд╕рд╛рде рдФрд░ рд╡реЗрдм рд╕рд░реНрд╡рд░ (рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ / рдЖрдЗрд╕реЛрдореЙрд░реНрдлрд┐рдХ рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ) рджреЛрдиреЛрдВ рдкрд░ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╕рдордп рдпрд╛ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдврд╛рдВрдЪреЗ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд╕рдордп рдХреЗ рд╕рднреА рд╕реНрддрд░реЛрдВ рдХреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ-рд░рд╛рдЙрдЯрд░ рдХреЗрд╡рд▓ рдПрдХ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдлрд╝рдВрдХреНрд╢рди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рд░реЗрдЦрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ (рдореИрдВ рдлрд┐рд░ рд╕реЗ рд░реЗрдЦрд╛ рдкрд░ рдЬреЛрд░ рджреЗрддрд╛ рд╣реВрдВ рдФрд░ рдЗрддрд┐рд╣рд╛рд╕, рд╕реНрдерд╛рди рдЖрджрд┐ рдХреА рд╡рд╕реНрддреБ рдкрд░ рдЬреЛрд░ рдирд╣реАрдВ рджреЗрддрд╛), рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реВрдВ, рдЬрд┐рд╕рдореЗрдВ рдкрд╛рд░реНрд╕ рдХрд┐рдП рдЧрдП рдпреВрдЖрд░рдПрд▓ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рднреЗрдЬрд╛ рдЬрд╛рдПрдЧрд╛ред рд╡рд╣ рд╕рдм рд╣реИред рдпрд╣ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдХреИрд╕рд╛ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ:
import React from 'react'; import UniversalRouter from 'universal-router'; import App from './App'; import Link from './Link'; const routes = { path: '/', async action({next}) { const children = await next(); return ( <App> {children} </App> ); }, children: [ { path: '', async action() { return ( <div>Root route go to <Link href='/test'>Test</Link></div> ); }, }, { path: '/test', async action({next}) { const children = await next(); return ( <App> {children} </App> ); }, children: [ { path: '', async action() { return ( <div>Test route return to <Link href='/'>Root</Link></div> ); }, }, ] }, ], }; export const basename = ''; const router = new UniversalRouter(routes, { baseUrl: basename }); export default router;
рдиреЗрд╕реНрдЯреЗрдб рд░реВрдЯ рднреА рд╕рдорд░реНрдерд┐рдд рд╣реИрдВред рдЙрдиреНрд╣реЗрдВ рдмрдЪреНрдЪреЛрдВ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдЖрдк рдЙрдиреНрд╣реЗрдВ рдЕрдЧрд▓реЗ () рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдФрд░ рдпрд╣ рдХреИрд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?
рдЗрддрд┐рд╣рд╛рд╕ рдХреЗ рд▓рд┐рдП рдиреЗрд╡рд┐рдЧреЗрдЯ () рд╡рд┐рдзрд┐ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХрдИ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдпрд╣ рджреЗрд╢реА рдкреБрд╢ () рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ
import { createBrowserHistory } from 'history' import parse from 'url-parse' import deepEqual from 'deep-equal' const isNode = new Function('try {return this===global;}catch(e){return false;}')
рд╣рдо рд▓рд┐рдВрдХ рдШрдЯрдХ рднреА рдмрдирд╛рддреЗ рд╣реИрдВ рдЬреЛ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░реЗрдЧрд╛:
import React from 'react'; import {basename} from './router'; import history from './history'; function noOp(){}; const createOnClickAnchor = (callback) => { return (e) => { e.preventDefault(); history.navigate(e.currentTarget.getAttribute('href')); callback(e); }; }; export default ({href, onClick = noOp, children, ...rest}) => ( <a href={basename + href} onClick={createOnClickAnchor(onClick)} {...rest} > {children} </a> );
рдЕрдм рдЖрдк рдШрдЯрдХ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВ:
import React from 'react'; import ReactDOM from 'react-dom'; import './index.css'; import App from './App'; import * as serviceWorker from './serviceWorker'; import history from './history'; import router from './router'; const render = async (location) => { const element = await router.resolve(location); ReactDOM.render( element, document.getElementById('root'), ); }; render(history.location); history.listen(render);
рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛрдбрдЙрдкрдпреЛрдЧреА рд▓рд┐рдВрдХ
1.
medium.com/@ippei.tanaka/universal-router-history-react-97ec79464573