рдиреЗрдХреНрд╕реНрдЯ.рдЬреЗрдПрд╕ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рдФрд░ рдореИрдирд┐рдлреЛрд▓реНрдб.рдлреЛ рд╣реЛрдордкреЗрдЬ рдХреЗ рд▓реЛрдбрд┐рдВрдЧ рдХреЛ 7.5 рдЧреБрдирд╛ рддреЗрдЬ рдХрд░рдирд╛

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



рдкрд░рд┐рдгрд╛рдо рдЕрд╡рд▓реЛрдХрди


рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╣рдо рдпрд╣ рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ Next.js рдХреЗ рд▓рд┐рдП рд╕рдВрдХреНрд░рдордг рдиреЗ рд╣рдореЗрдВ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдпрд╛ "рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЙрддреНрдкрд╛рджрдХрддрд╛ рдореЗрдВ рд╡реГрджреНрдзрд┐ рдЬреЛ рдХрд┐ рдХрд╣реАрдВ рд╕реЗ рднреА рдЖрдИ"ред рдпрд╣рд╛рдВ рд╡рд┐рднрд┐рдиреНрди рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдФрд░ рдиреЗрдЯрд╡рд░реНрдХ рдХрдиреЗрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд▓реЛрдб рд╕рдордп рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред
рдпреМрдЧрд┐рдХ
рдкреНрд░реЛрд╕реЗрд╕рд░
рд╕реЗрдХрдВрдб рдХреЗ рд▓рд┐рдП
рд╕реЗрдХрдВрдб рдХреЗ рдмрд╛рдж
% рд╕реБрдзрд╛рд░
рдлрд╛рд╕реНрдЯ (200 рдПрдордмреАрдкреАрдПрд╕)
рдЙрдкрд╡рд╛рд╕
1.5
0.2
750
рдордзреНрдпрдо (3 рдЬреА)
рдЙрдкрд╡рд╛рд╕
5.6
1.1
500
рдордзреНрдпрдо (3 рдЬреА)
рдФрд╕рдд
7.5
1.3
570
рдзреАрдорд╛ (рдзреАрдорд╛ 3G рдХрдиреЗрдХреНрд╢рди)
рдФрд╕рдд
22
4
550

рддреНрд╡рд░рд┐рдд рдХрдиреЗрдХреНрд╢рди рдФрд░ рддреЗрдЬрд╝ рдкреНрд░реЛрд╕реЗрд╕рд░ рд╡рд╛рд▓реЗ рдбрд┐рд╡рд╛рдЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рд╕рд╛рдЗрдЯ рд▓реЛрдб рд╕рдордп 1.5 s рд╕реЗ рдЧрд┐рд░ рдЧрдпрд╛ред 0.2 рд╕реЗрдХреЗрдВрдб рддрдХ, рдпрд╛рдиреА рдЗрд╕ рд╕реВрдЪрдХ рдореЗрдВ 7.5 рдЧреБрдирд╛ рд╕реБрдзрд╛рд░ рд╣реБрдЖред рдордзреНрдпрдо-рдЧреБрдгрд╡рддреНрддрд╛ рд╡рд╛рд▓реЗ рдХрдиреЗрдХреНрд╢рди рдкрд░ рдФрд░ рдФрд╕рдд рдкреНрд░рджрд░реНрд╢рди рд╡рд╛рд▓реЗ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░, рд╕рд╛рдЗрдЯ рд▓реЛрдб рд╕рдордп 7.5 рдПрд╕ рд╕реЗ рдЧрд┐рд░ рдЧрдпрд╛ред 1.3 рдПрд╕ рддрдХ

рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ URL рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ?


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


рдЖрд╡реЗрджрди рдЪрд░рдгреЛрдВ

рдЖрд╡реЗрджрди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ 5 рдЪрд░рдгреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ, рдЬрд┐рд╕рдХрд╛ рдЖрд░реЗрдЦ рдКрдкрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

  1. рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ URL рдкрд░ рдЬрд╛рддрд╛ рд╣реИ, рд╕рд┐рд╕реНрдЯрдо DNS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд░реНрд╡рд░ рдкрддреЗ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИ рдФрд░ рд╕рд░реНрд╡рд░ рддрдХ рдкрд╣реБрдВрдЪрддрд╛ рд╣реИред рдпрд╣ рд╕рдм рдмрд╣реБрдд рдЬрд▓реНрджреА рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЖрдорддреМрд░ рдкрд░ 100 рдорд┐рд▓реАрд╕реЗрдХрдВрдб рд╕реЗ рдХрдо рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рдХрджрдо рдореЗрдВ рдХреБрдЫ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ, рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдпрд╣рд╛рдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
  2. рдЕрдм рд╕рд░реНрд╡рд░ рдкреГрд╖реНрда рдХрд╛ HTML-рдХреЛрдб рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдкреГрд╖реНрда рддрдм рддрдХ рдЦрд╛рд▓реА рд░рд╣рддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдЙрд╕рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рдВрд╕рд╛рдзрди рд▓реЛрдб рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ (рдЬрдм рддрдХ рдХрд┐ рд╕рдВрд╕рд╛рдзрди рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рд▓реЛрдб рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ)ред рджрд░рдЕрд╕рд▓, рдЗрд╕ рдЪрд░рдг рдореЗрдВ рдЖрд░реЗрдЦ рдореЗрдВ рджрд┐рдЦрд╛рдП рдЬрд╛рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдХреНрд░рд┐рдпрд╛рдПрдВ рд╣реЛ рд░рд╣реА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрди рд╕рднреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рдПрдХ рд╕рдВрдпреБрдХреНрдд рд╕рдореАрдХреНрд╖рд╛ рднреА рд╣рдорд╛рд░реЗ рдЕрдиреБрд░реВрдк рд╣реЛрдЧреАред
  3. рдПрдЪрдЯреАрдПрдордПрд▓ рдХреЛрдб рдФрд░ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдпрд╣ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддрд╛ рд╣реИ рдХрд┐ рд╡рд╣ рдХреНрдпрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдмрд╛рдХреА рд╕рдм (рдЪрд┐рддреНрд░, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП) рд▓реЛрдб рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддрд╛ рд╣реИред рдХреНрдпрд╛ рдЖрдкрдиреЗ рдХрднреА рд╕реЛрдЪрд╛ рд╣реИ рдХрд┐ рдХрднреА-рдХрднреА рдХрд┐рд╕реА рдкреГрд╖реНрда рдкрд░ рдЕрдЪрд╛рдирдХ "рдкреЙрдк рдЕрдк" рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЪрд┐рддреНрд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рд╕реЗ рдЕрдзрд┐рдХ рддреЗрдЬ рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдХрднреА-рдХрднреА рдмрд╣реБрдд рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд▓реЛрдб рд╣реЛрддреЗ рд╣реИрдВ? рдпрд╣ рдареАрдХ рд╣реИ рдХрд┐ рдРрд╕рд╛ рдХреНрдпреЛрдВ рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЖрдкрдХреЛ рдПрдХ рддреИрдпрд╛рд░ рдкреГрд╖реНрда рдЬрд▓реНрджреА рд╕реЗ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
  4. рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдХреЛ рд▓реЛрдб рдХрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж рд╣реА рдкрд╛рд░реНрд╕ рдФрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдкреГрд╖реНрда рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдЬреЗрдПрд╕ рдХреЛрдб рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ (рдФрд░ рдпрд╣ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд░рд┐рдПрдХреНрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдпрджрд┐ рдХреЛрдб рдПрдХ рд╣реА рдлрд╛рдЗрд▓ рдореЗрдВ рдкреИрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рддреЛ рдХрд╛рдлреА рдмрдбрд╝рд╛ рд╣реИ) рдЗрд╕рдореЗрдВ рдХрдИ рд╕реЗрдХрдВрдб рдпрд╛ рдЙрд╕рд╕реЗ рднреА рдЕрдзрд┐рдХ рд╕рдордп рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ (рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЬреЗрдПрд╕ рдХреЛрдб рдХреА рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИ, рдХреНрд░рд┐рдпрд╛рдиреНрд╡рдпрди рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдиреНрдп рд╕рднреА рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд▓реЛрдб рд╣реЛрдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ, рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рдЖрд░реЗрдЦ рдореЗрдВ рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рдРрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ)ред
  5. рд░рд┐рдПрдХреНрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЕрдм рд╡рд╣ рдХреНрд╖рдг рдЖрддрд╛ рд╣реИ рдЬрдм рдХреЛрдб рдбреЛрдо рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдЗрд╕ рддрдереНрдп рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкрд╣рд▓реЗ рд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдкреГрд╖реНрда рдХреЛ рдлрд┐рд░ рд╕реЗ рджрд┐рдЦрд╛рддрд╛ рд╣реИред рдлрд┐рд░ рдПрдХ рдФрд░ рд╕рдВрд╕рд╛рдзрди рд▓реЛрдбрд┐рдВрдЧ рдЪрдХреНрд░ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдХрджрдо рдЗрд╕ рд╕рдордп рдкреГрд╖реНрда рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░реЗрдЧрд╛ред

рддреЗрдЬреА рд╕реЗ, рдмреЗрд╣рддрд░ рд╣реИред


рдЪреВрдВрдХрд┐ рдПрдХ рдкреНрд░рдЧрддрд┐рд╢реАрд▓ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд░рд┐рдПрдХреНрдЯ рдХреЛрдб рд▓реЗрддрд╛ рд╣реИ рдФрд░ рд╕реНрдерд┐рд░ HTML рдФрд░ рд╕реАрдПрд╕рдПрд╕ рдХреЛрдб рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЙрдкрд░реЛрдХреНрдд рдпреЛрдЬрдирд╛ рдХреЗ рдЪрд░рдг 3 рдкрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд░рд┐рдПрдХреНрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рджреЗрдЦрддрд╛ рд╣реИ, рдФрд░ рдЪрд░рдг 5 рдкрд░ рдирд╣реАрдВред рд╣рдорд╛рд░реЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ, рдпрд╣ 0.2-4 рд╕реЗрдХрдВрдб рд▓реЗрддрд╛ рд╣реИ , рдЬреЛ рдЗрдВрдЯрд░рдиреЗрдЯ рдФрд░ рдЙрд╕рдХреЗ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдХрдиреЗрдХреНрд╢рди рдХреА рдЧрддрд┐ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдкрд┐рдЫрд▓реЗ 1.5-22 рд╕реЗрдХрдВрдб рд╕реЗ рдХрд╛рдлреА рдмреЗрд╣рддрд░ рд╣реИред рдкреНрд░рдЧрддрд┐рд╢реАрд▓ рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рддреЗрдЬреА рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рддрд░реАрдХрд╛ рд╣реИред

рдкреНрд░рдЧрддрд┐рд╢реАрд▓ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рдлреНрд░реЗрдорд╡рд░реНрдХ рдЬреИрд╕реЗ Next.js рдХрд╛ рдХрд╛рд░рдг рдЕрднреА рднреА рдмрд╣реБрдд рд▓реЛрдХрдкреНрд░рд┐рдп рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдкрд░рдВрдкрд░рд╛рдЧрдд рд░реВрдк рд╕реЗ, JS рдлреНрд░реЗрдорд╡рд░реНрдХ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕реНрдереИрддрд┐рдХ HTML рдХреЛрдб рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдлрд▓ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред рдЖрдЬ, рд╕рдм рдХреБрдЫ рдЗрд╕ рддрдереНрдп рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж рдореЗрдВ рдмрджрд▓ рдЧрдпрд╛ рд╣реИ рдХрд┐ рд░рд┐рдПрдХреНрдЯ, рд╡реНрдпреВ рдФрд░ рдПрдВрдЧреБрд▓рд░ рдФрд░ рдЕрдиреНрдп рдЬреИрд╕реЗ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЛ рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЙрддреНрдХреГрд╖реНрдЯ рд╕рдорд░реНрдерди рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрди рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЕрднреА рднреА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдмрдВрдбрд▓реЛрдВ рдФрд░ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рдХрд╛рдо рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА рдЧрд╣рд░реА рд╕рдордЭ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕ рд╕рдм рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдмрд┐рдирд╛ рдирд╣реАрдВ рд╣реИред

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

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

Next.js рдкрд░ рдкрд▓рд╛рдпрди рдХрд░рдирд╛ рдХрд┐рддрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ?


рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рд╣реЛрдордкреЗрдЬ рдХреЛ Next.js рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рдирд╛ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рдерд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╣рдореЗрдВ рдХреБрдЫ рдХрдард┐рдирд╛рдЗрдпреЛрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рдЬреЛ рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдХреА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рдХрд╛рд░рдг рдереЗред

R рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд░реВрдЯрд░ рдХреЛ рдЦрд╛рд░рд┐рдЬ рдХрд░рдирд╛


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

Next.js рд░рд╛рдЙрдЯрд░ рдПрдХ рд╣рд╛рдИ-рд╕реНрдкреАрдб рд░рд┐рдПрдХреНрдЯ рд░рд╛рдЙрдЯрд░ рдХрд╛ рдПрдХ рд╕рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрднреА рднреА рдПрдХ рд░рд┐рдПрдХреНрдЯрд░ рд░рд╛рдЙрдЯрд░ рдирд╣реАрдВ рд╣реИред

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

/*   ( React) */ <Link to="/my/page">  A link </Link> /*   ( Next.js) */ <Link href="/my/page" passHref>  <a>    A link  </a> </Link> 

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


рдХрдИ рдЧреБрдирд╛ рдХреЗ рд▓рд┐рдП рдиреЗрдЯрд╡рд░реНрдХ рдЕрдиреБрд░реЛрдз

рдЕрдкрдиреА рдЦреБрдж рдХреА рдЖрдБрдЦреЛрдВ рд╕реЗ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдХрд╛рд░реНрд░рд╡рд╛рдИ рдореЗрдВ Next.js рд░рд╛рдЙрдЯрд░ рдХреЗ рдЕрдиреБрдХреВрд▓рди рдХреЛ рдХрдИ рдЧреБрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдбреЗрд╡рд▓рдкрд░ рдЯреВрд▓ рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдЯреИрдм рдЦреЛрд▓реЗрдВ рдФрд░ рдХрдИ рд▓рд┐рдВрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдкрд┐рдЫрд▓рд╛ рдЖрдВрдХрдбрд╝рд╛ /services рд▓рд┐рдВрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рджрд┐рдЦрд╛рддрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рдирд┐рдпрдорд┐рдд рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп services.js рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдЕрдиреБрд░реЛрдз рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИред

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

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

ред Redux рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ


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

Next.js рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЙрдЪреНрдЪ-рдХреНрд░рдо рдШрдЯрдХ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, withRedux , рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓рд┐рдП рд╕рднреА рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрд╡рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ withRedux :

 export default withRedux(HomePage); 

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

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд┐ Redux рдЕрдм рдПрдХ "рдмреНрд▓реИрдХ рдмреЙрдХреНрд╕" рд╣реИ, рдЗрд╕рдХреЗ рд╕рд╛рде рдЕрдЪрд▓ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рддрдереНрдп рдХрд┐ рдЗрдореНрдпреБрдЯреЗрдмрд▓ Redux рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдЧрд╛, рдХрд╛рдлреА рд╕реНрдкрд╖реНрдЯ рд▓рдЧрддрд╛ рд╣реИ, рдореИрдВ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛ред рддреЛ, рдпрд╛ рддреЛ рд╢реАрд░реНрд╖ рд╕реНрддрд░ рдХреА рд╕реНрдерд┐рддрд┐ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдирд╣реАрдВ рдереА (рдЧреЗрдЯ get is not a function рддреНрд░реБрдЯрд┐ get is not a function ), рдпрд╛ рдЖрд╡рд░рдг рдШрдЯрдХ рдиреЗ .get() рд╡рд┐рдзрд┐ рдХреЗ рдмрдЬрд╛рдп рдЬреЗрдПрд╕ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЙрдЯ рдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА ( Can't get catalog of undefined рддреНрд░реБрдЯрд┐ Can't get catalog of undefined )ред рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рджреВрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдХрд╛ рд╕рдВрджрд░реНрдн рджреЗрдирд╛ рд╣реЛрдЧрд╛ред рдЖрдЦрд┐рд░рдХрд╛рд░, Next.js рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдПрдХ рдХрд╛рд░рдг рд╕реЗ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рддрд╛ рд╣реИред

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ Next.js рд╕реЗ рдЬреБрдбрд╝реА рдореБрдЦреНрдп рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕ рдврд╛рдВрдЪреЗ рдореЗрдВ рдмрд╣реБрдд рдХрдо рд╣реА рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкреНрд░рд▓реЗрдЦрд┐рдд рд╣реИред рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдореЗрдВ рдХрдИ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ рдЬрд┐рдирдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЖрдк рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдХреБрдЫ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЙрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдЖрдкрдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ, рддреЛ рдЖрдк рдХреЗрд╡рд▓ рд╢реБрднрдХрд╛рдордирд╛рдПрдВ рджреЗ рд╕рдХрддреЗ рд╣реИрдВред

тЦНрдлреЗрдХ рд░рд┐рдЬреЗрдХреНрд╢рди


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

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

рдпрджрд┐ рдЖрдкрдХреЛ рдбреЗрдЯрд╛ рд▓реЛрдбрд┐рдВрдЧ рдореИрдХреЗрдирд┐рдЬреНрдо (рдореБрдЭреЗ рдХрд┐рд╕реА рдЕрдиреНрдп рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдк рдЗрд╕реЗ whatwg-fetch рдФрд░ node-fetch рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ next.config.js рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

 module.exports = { webpack: (config, options) =>   Object.assign(config, {     plugins: config.plugins.concat([       new webpack.ProvidePlugin(         config.isServer           ? {}           : { fetch: 'imports-loader?this=>global!exports-loader?global.fetch!whatwg-fetch' }       ),     ]),   resolve: Object.assign(config.resolve, {     alias: Object.assign(       config.resolve.alias,       config.isServer ? {} : { fetch: 'node-fetch' }     ),   }), }), }; 

тЦН рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рд╕рд░реНрд╡рд░ рдЬреЗрдПрд╕


Next.js рдХреА рдЕрдВрддрд┐рдо рд╡рд┐рд╢реЗрд╖рддрд╛, рдЬрд┐рд╕рдХрд╛ рдореИрдВ рдпрд╣рд╛рдВ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕ рдврд╛рдВрдЪреЗ рдХреЛ рджреЛ рдмрд╛рд░ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдПрдХ рдмрд╛рд░ рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП, рдФрд░ рдлрд┐рд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд▓рд┐рдПред рдпрд╣ рдПрдХ рд╣реА рдХреЛрдб рдмреЗрд╕ рдореЗрдВ рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ Node.js рдХреЛрдб рдХреЗ рдмреАрдЪ рдХреА рд░реЗрдЦрд╛ рдХреЛ рдзреБрдВрдзрд▓рд╛ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ Node.js рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рд▓рд╛рдн рд▓реЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╕рдордп fs is undefined рдЬреИрд╕реА рдЕрд╕рд╛рдорд╛рдиреНрдп рддреНрд░реБрдЯрд┐рдпрд╛рдВ fs is undefined рд╣реЛрддреА рд╣реИрдВред

рдирддреАрдЬрддрди, рд╣рдореЗрдВ next.js.config рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ next.js.config ред next.js.config :

 module.exports = { webpack: (config, options) =>   Object.assign(config, {     node: config.isServer ? undefined : { fs: 'empty' },   }), }; 

рдЕрдЧрд░ рдЖрдкрдХреЛ рд╡рд┐рднрд┐рдиреНрди рд╡рд╛рддрд╛рд╡рд░рдгреЛрдВ рдореЗрдВ рд╕рдорд╛рди рдХреЛрдб рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ Webpack рдореЗрдВ config.isServer рдзреНрд╡рдЬ рдЖрдкрдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рджреЛрд╕реНрдд рд╣реЛрдЧрд╛ред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, Next.js рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдШрдЯрдХреЛрдВ рдХреЗ рдЬреАрд╡рди рдЪрдХреНрд░ рдХреЗ рдорд╛рдирдХ рддрд░реАрдХреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, getInitialProps() рд╡рд┐рдзрд┐, рдЬрд┐рд╕реЗ рд╕рд░реНрд╡рд░ рдореЛрдб рдореЗрдВ рдХреЛрдб getInitialProps() рд╣реА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ:

 class HomePage extends React.Component { static getInitialProps() {   //         } componentDidMount() {   //     ,    } тАж } 

рд╣рд╛рдВ, рдФрд░ рдпрд╣ рди рднреВрд▓реЗрдВ рдХрд┐ рд╣рдорд╛рд░рд╛ рдЕрдЪреНрдЫрд╛ рджреЛрд╕реНрдд, window рдСрдмреНрдЬреЗрдХреНрдЯ, рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╕реБрдирдиреЗ рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╡рд┐рдВрдбреЛ рдХреЗ рдЖрдХрд╛рд░ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░рдиреЗ рдФрд░ рдХрдИ рдЙрдкрдпреЛрдЧреА рдХрд╛рд░реНрдпреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, Node.js рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ:

 if (typeof window !== 'undefined') { // ,     `window`      } 

рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ Next.js рдбреЗрд╡рд▓рдкрд░ рдХреЛ рд╕рд░реНрд╡рд░ рдкрд░ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рд╕рдорд╛рди рдХреЛрдб рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рд╕реЗ рдЬреБрдбрд╝реА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╕реЗ рдмрдЪрд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдРрд╕реА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рддреЗ рд╕рдордп, config.isServer рдФрд░ getInitialProps() рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реЛрддреЗ рд╣реИрдВред

рдкрд░рд┐рдгрд╛рдо: Next.js рдХреЗ рдмрд╛рдж рдХреНрдпрд╛ рд╣реЛрдЧрд╛?


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

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

рдкреНрд░рд┐рдп рдкрд╛рдардХреЛрдВ! рдХреНрдпрд╛ рдЖрдк рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ Next.js рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ?

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


All Articles