Next.js: рд░рд┐рдПрдХреНрдЯ рд░рд╛рдЙрдЯрд░ 4 рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░реЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 5 рдЕрдкреНрд░реИрд▓ 2017  ┬╖  122рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: vercel/next.js

рдХреНрдпрд╛ рдирдИ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд░реВрдЯрд░ v4 рдХреЗ рд╕рд╛рде next.js рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ?

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

@timneutkens рд░рд┐рдПрдХреНрдЯрд░ рд░рд╛рдЙрдЯрд░ рдЗрдВрдЯреАрдЧреНрд░реЗрд╢рди рдХреЛ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдиреЗрдХреНрд╕рд╕ рдЧреЛрдж рд▓реЗрдиреЗ рдФрд░ рд╡рд┐рдХрд╛рд╕ рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓реЗрдЧреАред рдЕрдкрдиреЗ рдЬреИрд╕реЗ рджреЗрд╡реЛрдВ рдХреЛ рдРрд╕рд╛ рд╣реЛрддреЗ рджреЗрдЦрдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛, рдХреГрдкрдпрд╛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдмрдврд╝рд╛рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред

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

@Knaackee рдХреНрдпрд╛ рдЖрдкрдиреЗ рд╕рдВрднрд╛рд╡рдирд╛ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА? рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдХреНрдпрд╛ рдХрд┐рд╕реА рдиреЗ рдЖрд░рдЖрд░ рдХреЗ рдХрд┐рд╕реА рднреА рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рд╣реИ?

рдЕрдЧрд▓рд╛ рдХрд╛ рдЕрдкрдирд╛ рд░рд╛рдЙрдЯрд░ рд╣реИ, рдЖрд░рдЖрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдХрд░реЗрдВ?

@sergiodxa рд╡рдЬрдиреА рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ рдореИрдВ рдЕрдкрдиреЗ рдореМрдЬреВрджрд╛ рдРрдк рдХреЛ рдиреЗрдХреНрд╕реНрдЯ рдореЗрдВ рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реВрдВред рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╕реНрдерд┐рд░, рдиреЗрд╕реНрдЯреЗрдб рдорд╛рд░реНрдЧ рд╣реИ рдЬреЛ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдореИрдВ рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ рдХреНрдпрд╛ рдирд╣реАрдВ ..

@oyeanuj ЁЯдФ рдЖрдк рдзреАрд░реЗ-рдзреАрд░реЗ рдиреЗрдХреНрд╕реНрдЯ рдореЗрдВ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдмрд╕ Next.js рдХреЛ 1 рд░реВрдЯ рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдХрд░реЗрдВ рдФрд░ рдЕрдкрдиреЗ рд╡рд░реНрддрдорд╛рди рдРрдк рдФрд░ Next.js рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░реЙрдХреНрд╕реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдлрд┐рд░ RR рд╕реЗ рдиреЗрдХреНрд╕реНрдЯ.рдЬреЗрдПрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рджреВрд╕рд░рд╛ рд░реВрдЯ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВ, рдФрд░ рд╡рд╣ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдЖрдк рдЕрдкрдиреЗ рд╡рд░реНрддрдорд╛рди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рддреЗ рд╕рдордп рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЕрдВрддрддрдГ рдЖрдкрдХреЗ рдкрд╛рд╕ Next.js рдореЗрдВ рд╕рдм рдХреБрдЫ рд╣реЛрдЧрд╛

рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рд╕реЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд▓реЗ рдореЗрдВ RRv2-3 рдХреА рддрд░рд╣ рдПрдХ рдПрдХрд▓ рдорд╛рд░реНрдЧ рддрд╛рд▓рд┐рдХрд╛ рд╣реИ рдФрд░ RRv4 рдХреА рддрд░рд╣ "рдиреЗрд╕реНрдЯреЗрдб рдорд╛рд░реНрдЧреЛрдВ" рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпреЗ рдЕрдЪреНрдЫреЗ рд╣реИрдВред

рдореИрдВ рдЖрд░рдЖрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ рдпрд╛ рдХреНрдпрд╛ рдореБрдЭреЗ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдПрдХ рдмрдбрд╝рд╛ рдЪреЗрддрд╛рд╡рдиреА рд╣реИ?

@igl рдХреНрдпрд╛ рдЖрдкрдиреЗ

рдиреЗрд╕реНрдЯреЗрдб рдорд╛рд░реНрдЧреЛрдВ рдХрд╛ рдирдпрд╛ рд░рд┐рдПрдХреНрдЯрд░-рд░рд╛рдЙрдЯрд░ 4 рдкреНрд░рддрд┐рдорд╛рди рдПрдХ рдЧреЗрдо-рдЪреЗрдВрдЬрд░ рд╣реИ, рдФрд░ рд╣рдорд╛рд░реЗ рд╡рд░реНрддрдорд╛рди рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдХреБрдЫ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдХреНрдпрд╛ рдХрд┐рд╕реА рдиреЗ rr4 рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдмреА рд╣рд╛рд╕рд┐рд▓ рдХреА рд╣реИред

MemoryRouter рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдпрджрд┐ рдЗрд░рд╛рджрд╛ рдирд╣реАрдВ рд╣реИ ...
рдЕрдиреНрдпрдерд╛, рдЧрддрд┐рд╢реАрд▓ рдШрдЯрдХ рдХреЗрд╡рд▓ рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдВ HashRouter рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ ...

const AdminPage = dynamic(
  import('..../AdminPage'),
  { ssr: false }
);

рдореИрдВ react-router рд╕рд╛рде @malixsys рджреГрд╖реНрдЯрд┐рдХреЛрдг рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рд╛рдЗрдб рд░реВрдЯрд┐рдВрдЧ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рд╕рднреА рд╕рд░реНрд╡рд░ рдиреЗ next рд░рд╛рдЙрдЯрд░ рдХреЗ рд╕рд╛рде рд╕рд╛рдордЧреНрд░реА рдкреНрд░рджрд╛рди рдХреА рд╣реИред

@malixsys @pegi рд╕реНрд╡рд░реНрдЧ рдпреВ рдЕрдЧрд▓реЗ рд░рд╛рдЙрдЯрд░ рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рд░рд╛рдЙрдЯрд░ рдХреЛ рдПрдХ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдФрд░ рд╡рд┐рд╡рд░рдг рджреЗ рд╕рдХрддрд╛ рд╣реИ?

рдЖрдк рдореЗрдВ рдПрдХ рдзреНрд╡рдЬ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ componentDidMount рдФрд░ рд╕рд╢рд░реНрдд рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ <Router /> рдЬрдм рдЭрдВрдбрд╛ truthy рд╣реИред ( componentDidMount рд╕рд░реНрд╡рд░ on рдкрд░ рдирд╣реАрдВ рдЪрд▓рддрд╛ рд╣реИ)

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╣рдо Next.js рдХреЗ рдЕрдВрджрд░ React Router рдХреЛ рдЬрд▓реНрдж рд╣реА рд╢рд╛рдорд┐рд▓ рдХрд░ рд░рд╣реЗ рд╣реИрдВ :)
- https://twitter.com/rauchg/status/948318111828099072

рдХреНрдпрд╛ рдЕрдм рднреА рдРрд╕рд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ? рдореИрдВ рд╡реА 6 рдХреИрдирд░реА рдХреЗ рд░рд┐рд▓реАрдЬрд╝ рдиреЛрдЯ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ рдЗрд╕рдХрд╛ рдХреЛрдИ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рд╣реИред

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

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

@timneutkens рд░рд┐рдПрдХреНрдЯрд░ рд░рд╛рдЙрдЯрд░ рдЗрдВрдЯреАрдЧреНрд░реЗрд╢рди рдХреЛ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдиреЗрдХреНрд╕рд╕ рдЧреЛрдж рд▓реЗрдиреЗ рдФрд░ рд╡рд┐рдХрд╛рд╕ рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓реЗрдЧреАред рдЕрдкрдиреЗ рдЬреИрд╕реЗ рджреЗрд╡реЛрдВ рдХреЛ рдРрд╕рд╛ рд╣реЛрддреЗ рджреЗрдЦрдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛, рдХреГрдкрдпрд╛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдмрдврд╝рд╛рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред

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

рд╡рд╣реАред

рдХреНрдпрд╛ рд╣рдо рдХрдо рд╕реЗ рдХрдо рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЗрд╕реЗ рдЯреНрд░реИрдХ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ?

рдореИрдВ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрд╣ рдПрдХ рдУрдкрди рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣реИ рдФрд░ zeit.co рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╕рдордп рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЗрд╕рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдордЬрдмреВрдд рдорд╛рдорд▓рд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рд╕рдм рдХреБрдЫ рдХреЗ рд▓рд┐рдП Next.js рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред

рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдореИрдВ рдХрд╣ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдпрд╣ рд▓рдВрдмреА рдЕрд╡рдзрд┐ рдХреЗ рд▓рдХреНрд╖реНрдпреЛрдВ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рддреБрд░рдВрдд рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рдЗрд╕рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдЬрд┐рди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдореИрдВ рдиреЗрдХреНрд╕реНрдЯ 6 рдореЗрдВ рдкреЗрд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд╡реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд░рд┐рдПрдХреНрдЯ рд░рд╛рдЙрдЯрд░ рд╕рдкреЛрд░реНрдЯ рдХреА рджрд┐рд╢рд╛ рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣реА рд╣реИрдВред

рдЕрдЧрд▓реЗ 6 рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрдиреНрдп рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдПрдВ рдереАрдВ, рдЬреЛ рдиреЗрдХреНрд╕реНрдЯ.рдЬреЗрдПрд╕ рдХреА рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдФрд░ рд╕реНрдХреЗрд▓реЗрдмрд┐рд▓рд┐рдЯреА рдореЗрдВ рдХрд╛рдлреА рд╕реБрдзрд╛рд░ рдХрд░ рд░рд╣реА рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП 100x рддреЗрдЬ рдкреГрд╖реНрда рдХрд╛ рд╕рдорд╛рдзрд╛рди, рдРрдк рдХрдВрдкреЛрдиреЗрдВрдЯ, рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдЕрдЧрд▓рд╛ рдирд┐рд░реНрдпрд╛рдд рдХрд╛рд░реНрдп рдХрд░рдирд╛, рдмреИрдмрд▓ 7, рдЖрджрд┐ред

рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдореЗрд░реА рдкреВрд░реНрд╡ рдЯрд┐рдкреНрдкрдгреА рдкрд░ рд╡рд┐рд╕реНрддреГрдд рд╣реИред

рддреЛ TLDR рд╣реИ:

  • рд╣рдо рдЗрд╕реЗ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рддреБрд░рдВрдд рдирд╣реАрдВ
  • рдЕрдЧрд▓реЗ 6 рдореЗрдВ рдиреЗрдХреНрд╕реНрдЯ.рдЬреЗрдПрд╕ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╣рд┐рд╕реНрд╕реЛрдВ рдореЗрдВ рдХрдИ рд╕реБрдзрд╛рд░ рд╣реИрдВ

@Timneutkens рдХреА рдЯрд┐рдкреНрдкрдгреА рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП: рд╣рдо рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЖрд░рдЖрд░ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡рд░реНрддрдорд╛рди рд░рд╛рдЙрдЯрд░ рдореЗрдВ рд╣рдорд╛рд░реА рдХреЛрдИ рджрдмрд╛рд╡ рд╕реАрдорд╛рдПрдВ рдирд╣реАрдВ рд╣реИрдВ рдЬреЛ рдЗрд╕реЗ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрддреЗ рд╣реИрдВред рд╕рднреА рд░реВрдЯрд┐рдВрдЧ рдЙрдкрдпреЛрдЧ-рдорд╛рдорд▓реЛрдВ рдХреА рдЖрдк рдХрд▓реНрдкрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╡рд░реНрддрдорд╛рди Next.js API рдХреЗ рд╕рд╛рде рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд▓рд╛рдЧреВ рдХрд┐рдП рдЧрдП рд╣реИрдВ

рджреЛ рдХрд╛рд░рдг рд╣реИрдВ рдЬреЛ рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд░реВрдЯрд░ рд╕рдорд░реНрдерди рдЪрд╛рд╣рддреЗ рд╣реИрдВ :

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

рдЬреИрд╕реЗ, рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рд╣рдореЗрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЦреБрд▓рд╛ рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП!

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

@merrywhether рдореИрдВрдиреЗ рдкрд┐рдЫрд▓реЗ рд╕рд╛рд▓ рд░рд┐рд▓реЗ-рдЖрдзреБрдирд┐рдХ рдХреЗ рд╕рд╛рде рдПрдХ RRv4 рдРрдк рдкрд░ рдХрд╛рдо рдХрд┐рдпрд╛ред рдЕрдзрд┐рдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рджреЗрдЦрднрд╛рд▓?
рдореБрдЭреЗ рдпрд╛рдж рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдпрд╛ рддреЛ рдЧрдВрднреАрд░ рдореБрджреНрджреЗ рд╣реИрдВред

@igl рдпрд╣ рд░рд┐рд▓реЗ рдХреЗ рдкреНрд░рд▓реЗрдЦрди рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╣реИ: https://facebook.github.io/relay/docs/en/rout.html#react -router-https-reacttrainingcom-react-рд░реВрдЯрд░

рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЖрд░рдЖрд░рд╡реА 4 рдХрд╛ рдШрдЯрдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкреВрд░реНрд╡-рд╕рдВрдХрд▓рди рдХрджрдо рдХреЗ рджреМрд░рд╛рди рдирд┐рд░реНрдзрд╛рд░рдг рдХреЗ рд▓рд┐рдП рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдХреНрд▓рд╛рдЗрдВрдЯ рдореЗрдВ рдЕрдиреБрд░реЛрдз рдЭрд░рдиреЗ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

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

@dbbk рд╣рдорд╛рд░реЗ рдЕрдЧрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдЙрджрд╛рд╣рд░рдг рдРрдк (https://github.com/now-examples/nextgram) рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ, рдпрд╣ рдРрд╕рд╛ рдХрд░рддрд╛ рд╣реИ

рдЕрдЧрд▓реЗ 5 рдореЗрдВ, рд╣рдо рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп рд▓реЗрдЖрдЙрдЯ рдШрдЯрдХреЛрдВ рдХреЗ рджреНрд╡рд╛рд░рд╛ "рдмрд╛рд╣рд░реА рдорд╛рд░реНрдХрдЕрдк" рдХреЛ рдкреВрд░рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЬреЛ рд╣рдорд╛рд░реЗ рд╕рднреА рдкреГрд╖реНрдареЛрдВ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ: рдЖрдзрд╛рд░ рд▓реЗрдЖрдЙрдЯ рдореЗрдВ рд╢реАрд░реНрд╖ рдиреМрд╕реЗрдирд╛ рд╣реИ, рдлрд┐рд░ рдХреБрдЫ рдЙрдк-рд▓реЗрдЖрдЙрдЯ рдЬреЛ рд╕реВрдЪреА / рд╡рд┐рд╡рд░рдг / рдЖрджрд┐ рдХреЗ рд▓рд┐рдП рдЖрдзрд╛рд░ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рд╣рдорд╛рд░реЗ рдкреГрд╖реНрда рдШрдЯрдХ рдЕрдкрдиреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде рдЗрди рдЙрдк-рд▓реЗрдЖрдЙрдЯ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред рдЕрдЧрд▓реЗ 6 рдореЗрдВ, рдЖрдк _app.js рдореЗрд░рд╛ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХрд░рддреЗ рд╣реБрдП рдореВрд▓ "рдмрд╛рд╣рд░реА рдорд╛рд░реНрдХрдЕрдк" рдХреЛ рднреА рдкреВрд░рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдХреНрдпрд╛ рдЕрдЧрд▓рд╛ рд╕рдВрд╕реНрдХрд░рдг рдПрдХ рд░рд╛рдЙрдЯрд┐рдВрдЧ рд╕рдорд╛рдзрд╛рди рдЪреБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдХрд┐ рд░рд┐рдПрдХреНрдЯ рд░рд╛рдЙрдЯрд░ рдирд╣реАрдВ рд╣реИ?

рд╣рд╛рдп, рдореИрдВ рдХреЗрд╡рд▓ рдХреНрд░рдо рдореЗрдВ рд░реВрдЯрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдкреГрд╖реНрдареЛрдВ рдХреЗ рд▓рд┐рдП рд░рдВрдЧрдордВрдЪ рдХреА рд╕рд╛рдордЧреНрд░реА (рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП <Route render ={} /> рдХреЗ рдмрдЬрд╛рдп <Route component ={} /> ), рдореИрдВ рдЗрд╕реЗ рдЕрдЧрд▓реЗ рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

Https://github.com/zachrbrown/next-react-router рджреЗрдЦреЗрдВ https://github.com/zachrbrown/next-react-router/blob/master/src/IsomorphicRouter.js рдореЗрдВ рдХреБрдЫ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╡рд┐рд╡рд░рдг

рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рд╕реЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд▓реЗ рдореЗрдВ RRv2-3 рдХреА рддрд░рд╣ рдПрдХ рдПрдХрд▓ рдорд╛рд░реНрдЧ рддрд╛рд▓рд┐рдХрд╛ рд╣реИ рдФрд░ RRv4 рдХреА рддрд░рд╣ "рдиреЗрд╕реНрдЯреЗрдб рдорд╛рд░реНрдЧреЛрдВ" рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпреЗ рдЕрдЪреНрдЫреЗ рд╣реИрдВред

рдирдорд╕реНрддреЗ,

рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдореБрдЭреЗ рдПрдХрд▓ рдорд╛рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреГрд╖реНрда рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛?

рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ 2 рдорд╛рд░реНрдЧ sign up , log in ред рдореЗрд░реЗ рдкрд╛рд╕ 1 рдкреЗрдЬ рд╣реЛрдЧрд╛ рдЬреЛ рд╕рдорд╛рди рд▓реЗрдЖрдЙрдЯ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рддрд╛ рд╣реИ, рдХреЗрд╡рд▓ рдЕрдВрддрд░ рд░реВрдкреЛрдВ рдХрд╛ рдХреНрд╖реЗрддреНрд░ рд╣реИред рдореБрдЭреЗ рд╕рд┐рд░реНрдл pages рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ 1 рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЧрд▓реЗ рд░рд╛рд╕реНрддреЛрдВ рд╕реЗ рдореБрдЭреЗ pages рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ 2 рдлрд╛рдЗрд▓реЗрдВ рдмрдирд╛рдиреА рд╣реЛрдВрдЧреАред рдХреНрдпрд╛ рдпрд╣?

рдпрджрд┐ рдпрд╣ рд╣реИ, рддреЛ рд▓реЗрдЖрдЙрдЯ рдХреЛ рд╣рд░ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдХреЗ рд╕рд╛рде рд░рд┐рдорд╛рдЙрдВрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рди рдХрд┐ рдХреЗрд╡рд▓ рдлреЙрд░реНрдо рдПрд░рд┐рдпрд╛, рд░рд╛рдЗрдЯ?

@ 7c78 рдПрдХ рдмрд╛рдд рдЬреЛ рдЖрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рд╡рд╣ рд╣реИ рд╕рднреА рдкреЗрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рд▓рдЧрд╛рддрд╛рд░ рдкреЗрдЬ рд▓реЗрдЖрдЙрдЯ рдХреЗ рд▓рд┐рдП _app.js рдХрд╛ рд▓рд╛рдн рдЙрдард╛рдирд╛ред рджреВрд╕рд░реА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд╕рд╛рдЭрд╛ рдХрд┐рдП рдЧрдП рд▓реЗрдЖрдЙрдЯ рдШрдЯрдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рд╕реЗ рдЖрдк рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ, рдЙрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рд╡рд┐рднрд┐рдиреНрди рдкреГрд╖реНрдареЛрдВ рдореЗрдВ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

// pages/login.js

class LoginPage extends React.Component {
  render() {
    return (
      <AuthForm>    // same component can be reused in signup
        <form>
          ...implementation of login
        </form>
      </AuthForm>
    );
  }
}

рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдЖрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдордиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдЖрдзрд╛рд░ рд▓реЗрдЖрдЙрдЯ рдШрдЯрдХреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ рдЬреЛ рдЖрдкрдХреЗ рдкреГрд╖реНрда рдШрдЯрдХреЛрдВ рдХреЛ рдмрдврд╝рд╛рддреЗ рд╣реИрдВ:

//layouts/baseAuth.js

class BaseAuth extends React.Component {
  abstract formContent();  // we use typescript, but you can have the same concepts
  abstract formSubmit():

  render() {
    return (
      <SomeStyledDiv>
        <form>
          {this.formContent()}
          {this.formSubmit()}
        </form>
      </SomeStyledDiv>
    );
  }
}

рдФрд░ рдлрд┐рд░ рдЖрдк рдмрд╕ рдЕрдкрдиреЗ рд▓реЙрдЧрд┐рди рдФрд░ рд╕рд╛рдЗрдирдЕрдк рдкреГрд╖реНрдареЛрдВ рдореЗрдВ рдмреЗрд╕рдСрде рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдореЗрдВ formContent рдФрд░ formSubmit рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ (рдпреЗ рдЦрд┐рд▓реМрдирд╛ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЖрдкрдХреЛ рд╕рдЯреАрдХ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рд╣реВрдВ)ред

@merrywhether
рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЖрдкрдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдФрд░ рдЕрдЧрд▓реЗ рдЙрджрд╛рд╣рд░рдг рднреА рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред

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

рдЖрд░рдЖрд░рд╡реА 4 рдХреЗ рд╕рд╛рде, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХрд▓ рдкреГрд╖реНрда рд╣реИрдВ рдФрд░ рдорд╛рд░реНрдЧреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд░реВрдкреЛрдВ рдХрд╛ рдкреНрд░рддрд┐рдкрд╛рджрди / рдмреНрдпреЛрд░рд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдкреВрд░реЗ рдкреГрд╖реНрда рдкрд░ рдирд╣реАрдВ)ред рд░реВрдЯ рд╕рд┐рд░реНрдл рдШрдЯрдХ рд╣реИрдВред

рддреЗрдЬреА рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

@ 7c78 рдпрд╣

рдпрд╣ рдРрд╕рд╛ рдХреБрдЫ рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╣рдо рд╕реБрдкрд░ рдЪрд┐рдВрддрд┐рдд рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рд░рд┐рд▓реЗ-рдЖрдзреБрдирд┐рдХ рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рд░рд╛рдЙрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдЗрд╕ рдкреИрдЯрд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

@merrywhether рдореБрдЭреЗ

рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ рд╣рдореЗрдВ рдЗрд╕ рдкреИрдЯрд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡реИрд╕реЗ рднреА рдХрд░рдирд╛ рд╣реИред рдзрдиреНрдпрд╡рд╛рдж!

рдЖрдк рдЕрдкрдиреЗ рд╕рдВрдкреВрд░реНрдг рдРрдк рдХреЛ рдкреГрд╖реНрдареЛрдВ / index.js рдореЗрдВ рд╣реЛрдиреЗ рдХреЗ рджреНрд╡рд╛рд░рд╛ рдЕрдЧрд▓реА рдмрд╛рд░ рдЖрд░рдЬреЗ рдХреЗ рд╕рд╛рде рдЖрд░рдЖрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЖрдк рдЕрдЧрд▓реЗ рдХреБрдЫ рдЕрдЪреНрдЫрд╛рдЗрдпреЛрдВ рдХреЛ рдЦреЛ рджреЗрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рдХрд┐ рдмреЙрдХреНрд╕ рдХреЛрдб рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдирд╛ рдФрд░ рдЦреБрдж рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реИред

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

рд░реАрдЪ рд░рд╛рдЙрдЯрд░ рднреА рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ

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

@sorokinvj рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рдкреНрд▓рдЧрдЗрди (рд╡рд░реНрддрдорд╛рди рдореЗрдВ) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдорд░реНрдерд┐рдд рд╣реИ .. https://github.com/fridays/next-routes

рд╕реНрдереИрддрд┐рдХ рд▓рд┐рдВрдХ рдЗрддрдиреЗ рдмреБрдирд┐рдпрд╛рджреА рд╣реИрдВ рдХрд┐ рдпрд╣ рд▓рд┐рдВрдХ рдореЗрдВ рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рднреА рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ ...

рдореИрдВ рдЕрдм рдЗрд╕рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП https://github.com/fridays/next-routes рдХреЗ рд▓рд┐рдП рдерд░реНрдб рдкрд╛рд░реНрдЯреА рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ

рдореЗрд░реЗ рдЖрдИрдлреЛрди рд╕реЗ рднреЗрдЬрд╛ рдЧрдпрд╛

24 рдЕрдХреНрдЯреВрдмрд░ 2018 рдХреЛ, 23:01 рдкрд░, рдПрдВрдбреА рдЗрдирдЧреНрд░рд╛рдо рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com рдиреЗ рд▓рд┐рдЦрд╛:

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

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЛ рдЗрд╕ рдзрд╛рдЧреЗ рдХреА рд╕рджрд╕реНрдпрддрд╛ рджреА рдЧрдИ рд╣реИред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рдЙрддреНрддрд░ рд╕реАрдзреЗ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ, рдпрд╛ рдереНрд░реЗрдб рдХреЛ рдореНрдпреВрдЯ рдХрд░реЗрдВред

рд╣рдо рд╕рдордп-рд╕рдордп рдкрд░ next-routes рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдЕрдЧрд▓реА рдЯреАрдо regex рдлрд╝рд╛рдЗрд▓ рдирд╛рдореЛрдВ (рд╕реИрдкрд░ рджреНрд╡рд╛рд░рд╛ рдкреНрд░реЗрд░рд┐рдд) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдкрдиреЗ рдлрд╝рд╛рдЗрд▓-рд╕рд┐рд╕реНрдЯрдо рд░реВрдЯрд┐рдВрдЧ рдореЗрдВ рдкрде рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реА рд╣реИред

@merrywhether рдореИрдВ next-routes рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдпрд╣ Next.js рдХреЛрд░ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛрдЧрд╛ред

рдЖрдкрдиреЗ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдХрд┐рдпрд╛ рдерд╛

рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдЕрдЧрд▓реА рдЯреАрдо рдкрде рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реА рд╣реИ ...

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

@curran рд╕реНрд░реЛрдд

рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ 5 рдЕрдкреНрд░реИрд▓, 2017 рдХреЛ рдЙрдард╛рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдЕрдм 27 рдлрд░рд╡рд░реА, 2019 рд╣реИред рд▓рдЧрднрдЧ 2 рд╕рд╛рд▓ рдФрд░ рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИ
рдХреБрдЫ рдЕрдЪреНрдЫреЗ рдХреЗ рд╕рд╛рде рдЕрд░реНрдз-рдирд┐рд░реНрдорд┐рдд рдмрд┐рд▓реНрдЯ-рдЗрди рд░рд╛рдЙрдЯрд░ рдХреЛ рдмрджрд▓рдиреЗ рдХрд╛ рд╕рдордп рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?

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

рдореИрдВ рдкрд╣рд▓реА рдмрд╛рд░ рдореЗрдВ ReactRouter рд╕реЗ рдЪреВрдХ рдЧрдпрд╛ред рдЕрдм рдореБрдЭреЗ рдпрд╣ рднреА рдпрд╛рдж рдирд╣реАрдВ рд╣реИ рдХрд┐ NextJS рдХреЗ рдкрд╛рд╕ рдПрдХ рдЕрд▓рдЧ рд░рд╛рдЙрдЯрд░ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдХреЛрдИ рдореБрдЭреЗ рдпрд╛рдж рди рджрд┐рд▓рд╛рдПред Verbose Link API рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдкрд░рджреЗ рдХреЗ рдкреАрдЫреЗ (рдЕрдкрдиреЗ рдбреЗрдЯрд╛ / рдПрдкреАрдЖрдИ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░) рдХреЗ рд╕рд╛рде рд▓рдкреЗрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рддреБрдЪреНрдЫ рд╣реИред рдЗрд╕ рд╢реАрд░реНрд╖ рд░рд╣рд╕реНрдп рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛::

import _Link from "next/link"
export function Link({as, children, href}) {
  as = as || QS.parse(U.parse(href).query || "").url || null // QS, U are parsing libs
  return <_Link as={as} href={href}>
    {children}
  </_Link>
}
<Link as="/about" href="/page?url=/about"/> verbose
тЖТ
<Link href="/page?url=/about"/> ok

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рд╕рднреА рдХреЛ рдорд╛рдзреНрдпрдорд┐рдХ рд╕рд╛рдорд╛рди ing рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╢рд┐рдХрд╛рдпрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдо рд╕рдордп рдмрд┐рддрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП

@ ivan-kleshnin рдирд╛рдЗрд╕ рдореИрдВрдиреЗ рдПрдХ рд╕рдорд╛рди рдЖрд╡рд░рдг рдЬреЛрдбрд╝рд╛

рдкрд┐рдЫрд▓реА рдЯрд┐рдкреНрдкрдгреА рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдореИрдВ https://www.contributor-covenant.org/version/1/4/code-n-chaduct рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛

рдореИрдВрдиреЗ рдХрд╣рд╛ рдЯрд┐рдкреНрдкрдгреА рдЫрд┐рдкрд╛рдИ рд╣реИред

рдореБрдЭреЗ рдЬреНрдпрд╛рджрд╛рддрд░ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП next/router рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред
рд▓реЗрдХрд┐рди рдпрд╣ universal routing рд╣рд┐рд╕реНрд╕реЗ рдкрд░ рдереЛрдбрд╝рд╛ рд╕реБрдзрд╛рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЕрдм 2 рддреИрдирд╛рддреА рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореИрдВ рд╕рд┐рд░реНрдл now.json рдХрд░реВрдВрдЧрд╛ рдФрд░ рдЗрд╕реЗ рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рд░реВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛ред

рдпрджрд┐ рдЖрдк рдЕрдЧрд▓реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ RR4 рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ 2 рдХрд╛рдо рдХрд░рдиреЗ рд╣реЛрдВрдЧреЗ:

  1. NextJS SSR рдХреЛ рд░реЛрдХреЗрдВ, next/dynamic рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдк рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
  2. HashRouter рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп BrowserRouter -> рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреГрд╖реНрда рдкреБрдирдГ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИ, рддреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкрд┐рдЫрд▓реЗ рдкреГрд╖реНрда рдХреЛ рд▓реЛрдб рдХрд░ рд╕рдХрддрд╛ рд╣реИ (404 рдкреГрд╖реНрда рдирд╣реАрдВ)

рдпрджрд┐ рдЖрдк рдЕрдЧрд▓реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ RR4 рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ 2 рдХрд╛рдо рдХрд░рдиреЗ рд╣реЛрдВрдЧреЗ:

  1. NextJS SSR рдХреЛ рд░реЛрдХреЗрдВ, next/dynamic рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдк рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
  2. HashRouter рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп BrowserRouter -> рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреГрд╖реНрда рдкреБрдирдГ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИ, рддреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкрд┐рдЫрд▓реЗ рдкреГрд╖реНрда рдХреЛ рд▓реЛрдб рдХрд░ рд╕рдХрддрд╛ рд╣реИ (404 рдкреГрд╖реНрда рдирд╣реАрдВ)

рдЗрд╕ рдЙрддреНрддрд░ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдореЗрд░реА рдмрд╣реБрдд рдорджрдж рдХреАред

@ рдкрд╣реБрдВрдЪ / рд░рд╛рдЙрдЯрд░ рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рд░рд╛рдЙрдЯрд░ 5 рд╡рд┐рд▓рдп рдХрд░ рд░рд╣реЗ рд╣реИрдВ: https://reacttraining.com/blog/reach-react-router-future/

рдпрд╣ рдЖрдЧреЗ рдХреИрд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред

@ alp82 рдЪреВрдВрдХрд┐ Next.js рдЕрднреА рднреА рд░рд┐рдПрдХреНрдЯ рд░рд╛рдЙрдЯрд░ рдпрд╛ рд░реАрдЪ рд░рд╛рдЙрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдпрд╣ Next.js рдХреЛ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред

рдореИрдВ рд╕реВрдЪрдХрд╛рдВрдХ рдкреГрд╖реНрдареЛрдВ рдореЗрдВ рдХрдИ рдкреГрд╖реНрдареЛрдВ рдХреЗ рдШрдЯрдХреЛрдВ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдиреЗрдХреНрд╕реНрдЯ рдореЗрдВ рд╕реНрд╡рд┐рдЪ рдорд╛рд░реНрдЧреЛрдВ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рддреЛ рдореИрдВ рдЗрд╕реЗ рдЕрдЧрд▓реА рдмрд╛рд░ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ ....... ???

рдпрджрд┐ рдЖрдк рдЕрдЧрд▓реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ RR4 рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ 2 рдХрд╛рдо рдХрд░рдиреЗ рд╣реЛрдВрдЧреЗ:

  1. NextJS SSR рдХреЛ рд░реЛрдХреЗрдВ, next/dynamic рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдк рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
  2. HashRouter рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп BrowserRouter -> рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреГрд╖реНрда рдкреБрдирдГ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИ, рддреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкрд┐рдЫрд▓реЗ рдкреГрд╖реНрда рдХреЛ рд▓реЛрдб рдХрд░ рд╕рдХрддрд╛ рд╣реИ (404 рдкреГрд╖реНрда рдирд╣реАрдВ)

рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рдкрд┐рдЫрд▓реЗ рдкреГрд╖реНрда рдХреЛ рдлрд┐рд░ рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдмрд┐рдирд╛ 404 рддреНрд░реБрдЯрд┐ рдХреЗ рдлреЗрдВрдХ рджреЗрдВ, рддрд╛рдХрд┐ рдпрд╣ рдЖрдкрдХреЗ рдПрдХреНрд╕рдкреНрд░реЗрд╕ рд╕рд░реНрд╡рд░ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд░реВрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХреЗред

server.get ('рдЕрдкрдиреЗ рдкрд░рдо', (рдкреБрдирдГ, Res) => {
рдХреЙрдиреНрд╕реНрдЯ рдПрдХреНрдЪреБрдЕрд▓рдкреЗрдЬ = '/ your_page'
const рдХреНрд╡реЗрд░реАрдкрд░рд╛рдо = {рдЖрдИрдбреА: req.params.id}
app.render (req, res, realPage, queryParams)
})

рдореИрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рджрд╕реНрддрд╛рд╡реЗрдЬ next.js рдХреЗ рд╕рд╛рде react-router , рдПрдХ рдПрдХрд▓ рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдмрдЬрд╛рдп рджреЗрд╢реА рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдЖрдзрд╛рд░рд┐рдд рд░реВрдЯрд┐рдВрдЧ рдФрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рджреЗрд╢реА рдПрд╕рдПрд╕рдЖрд░ рд╕реБрд╡рд┐рдзрд╛рдУрдВ

рдореБрдЭреЗ рдлреАрдбрдмреИрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЧрдП рд╕реБрдзрд╛рд░реЛрдВ рдкрд░ рдЦреБрд╢реА рд╣реЛрдЧреАред

рдкреНрд░рд▓реЗрдЦрди рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдЙрдкрд▓рдмреНрдз рд╣реИ:

рдЪреАрдпрд░реНрд╕!

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

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

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

@timneutkens рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдмрддрд╛рдП рдЧрдП рдмрд┐рдВрджреБрдУрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рдПрдХ рд╡реНрдпрд╛рдкрд╛рд░-рдирд╛рдкрд╕рдВрдж рдорд╛рдорд▓рд╛ рд╣реИред рдореЗрд░рд╛ рдПрдХ рдкреНрд░рдпреЛрдЧ рд╣реИ рдЬреЛ рдпрд╣ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ Next.js рдХреЛ рдПрдХ рдЕрд▓рдЧ рд╕реЗрдЯрдЕрдк рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рдкрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХреЛрдб

рдХреЛрдИ рднреА рдЖрдзреБрдирд┐рдХ рдмрдВрдбрд▓ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреЛ рд╡рд┐рдЦрдВрдбреВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ react-router рдорд╛рд░реНрдЧ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╡рд┐рднрд╛рдЬрди рдмрд┐рдВрджреБ рд╣реИрдВред

рдЙрдЪреНрдЪ рджреЗрд╡ рдирд┐рд░реНрдорд╛рдг рд╕рдордп

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

рдХреЛрдИ рд╕реНрдерд┐рд░ рдирд┐рд░реНрдпрд╛рдд рдирд╣реАрдВ

рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рд╕реНрдерд┐рд░ рдирд┐рд░реНрдпрд╛рдд рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрдиреБрдХреВрд▓рди рдкрд░рдд рд╣реИред рдЕрдЧрд▓реЗ Next.js рдПрдкреНрд▓рд┐рдХреЗрд╢рди рджреНрд╡рд╛рд░рд╛ рджрд┐рдП рдЧрдП рдЕрдзрд┐рдХрд╛рдВрд╢ рдкреГрд╖реНрдареЛрдВ рдХреЛ рд╡реИрд╕реЗ рднреА рдЧрддрд┐рд╢реАрд▓ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдпрд╣ рд╕реНрдерд┐рд░ рдирд┐рд░реНрдпрд╛рдд рдХрд╛ рд▓рд╛рдн рдирд╣реАрдВ рджреЗ рд╕рдХрддрд╛ рд╣реИред

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

рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдЯрд┐рдкреНрдкрдгреА рдХреЛ рдЫрд┐рдкрд╛рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЙрдЪреНрдЪ рдЯреНрд░реИрдлрд╝рд┐рдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ рдФрд░ рдпрд╣ Next.js рдРрдкреНрд╕ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреЛ рдирд╣реАрдВ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред рдпрджрд┐ рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рд░рд╛рдЙрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд╡реЗ рдЖрдкрдХреЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдиреЗрддреНрд░рд╣реАрди рд░реВрдк рд╕реЗ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рдПрдВрдЧреЗ рдФрд░ рдпрд╣ рдЬрд╛рдВрдЪ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ рдХрд┐ Next.js. рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд░рд╛рдЙрдЯрд┐рдВрдЧ рдХреЛ рдареАрдХ рд╕реЗ рдХреИрд╕реЗ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПред

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

рдЖрдк рдЕрдкрдиреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рджреЗрд╡-рдЯрд╛рдЗрдо рдмреВрдЯрдЕрдк рдХреЛ рдЧрддрд┐ рдирд╣реАрдВ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ, рд╡реЗрдмрдкреИрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рдХреЛрдИ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдлрд╛рдЗрди-рдЯреНрдпреВрдирд┐рдВрдЧ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗрдмрдкреИрдХ рдмрд╕ рд╣рд░ рдПрдХ рдорд╛рд░реНрдЧ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдФрд░ рджреЗрдЦреЗрдЧрд╛ рдЬрд┐рд╕реЗ рдЖрдк рдЖрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдЖрдо рдШрдЯрдХреЛрдВ рдХреЗ рд╕рдВрдкрд╛рджрди рдХреЛ рдзреАрдорд╛ рдХрд░ рджреЗрддрд╛ рд╣реИред рдЗрд╕реАрд▓рд┐рдП Next.js рдХреА рдСрди-рдбрд┐рдорд╛рдВрдб-рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ рд╣реИрдВ: https://nextjs.org/blog/next-8#improved -on-demand-рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ

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

рдореБрдЭреЗ рдпрд╣ рдЯрд┐рдкреНрдкрдгреА рдХрд░рдиреЗ рдореЗрдВ рдХреЛрдИ рдЖрдкрддреНрддрд┐ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдпрд╣ рдареАрдХ рд╕реЗ рдпрд╣ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдХреЗрд╡рд▓ рдЙрд╕ рдРрдк рдХреЛ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдирд╛ рд╣реИ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рд░рд╛рдЙрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдзреАрд░реЗ-рдзреАрд░реЗ рдХрдИ рдкреГрд╖реНрдареЛрдВ рдкрд░ рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЕрд░реЗ @timneutkens
рдХреНрдпрд╛ рдЖрдк рдРрд╕реЗ рдХреБрдЫ рдкреЗрд╢реЗрд╡рд░реЛрдВ рдХреА рдЧрдгрдирд╛ рдХрд░реЗрдВрдЧреЗ, рдЬреЛ рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рд░реВрдк рд╕реЗ рдПрдирд╛рд▓рд┐рд╕рд┐рд╕ рд╣реЛрдиреЗ рд╕реЗ рдЯреЗрдмрд▓ рдкрд░ рдЖрддреЗ рд╣реИрдВ рдФрд░ рдбрд╛рдпрдирд╛рдорд┐рдХ рд░реВрдЯрд┐рдВрдЧ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИрдВ?

рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рдХреА рдмрд╛рддреЗрдВ https://github.com/jaredpalmer/after.js ?

Ive рдиреЗ рд╕рднреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рдкрдврд╝рд╛ рдФрд░ рдЕрднреА рднреА рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рднрд╡рд┐рд╖реНрдп рдореЗрдВ RR4 + рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдпрд╛ рднрд╡рд┐рд╖реНрдп рдХреЗ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдореЗрдВ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реЛрдЧрд╛ред рдХреНрдпрд╛ рдПрдХ рд░рд╛рдЙрдЯрд░ рд░реЛрдбрдореИрдк рдпрд╛ рдХреБрдЫ рдЗрд╕реА рддрд░рд╣ рдХрд╛ рд╣реИ?

@laurencefass рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ react-router (рдЖрдЬ рдХреЗ рдЕрдиреБрд╕рд╛рд░) рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдпреЛрдЬрдирд╛ рдирд╣реАрдВ рд╣реИред

рдореЗрд░реЗ рд▓рд┐рдП, Next.js рдХрд╛ рд░реВрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХрд╛рдлреА рдкрд░рд┐рдкрдХреНрд╡ рд╣реЛрддрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рд╢рд╛рдпрдж (рдЕрдм) рд╡реИрд╕реЗ рднреА рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ :)

"рдореЗрд░реЗ рд▓рд┐рдП, Next.js рдХрд╛ рд░реВрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХрд╛рдлреА рдкрд░рд┐рдкрдХреНрд╡ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рд╢рд╛рдпрдж (рдЕрдм) рд╡реИрд╕реЗ рднреА рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ :)"

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

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

@dbbk рдореИрдВрдиреЗ рд╕реБрдирд╛ рдХрд┐ рдиреЗрдХреНрд╕реНрдЯ рдХреА рдЯреАрдо рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реА рд╣реИред

рдЕрдЧрд▓реЗ рдЬреЗ рдПрд╕ рд░реВрдЯрд░реНрд╕ рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рд▓рдЪреАрд▓рд╛ рд╣реИред https://dev.to/toomuchdesign/next-js-react-router-2kl8

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

рдЕрдм рдПрд╕рдИрдУ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ Google рдЦреЛрдЬ рд╕реЗ рдХреБрдЫ рдЕрдЪреНрдЫреЗ рдЯреНрд░реИрдлрд╝рд┐рдХ рд╣реИрдВ, рдореБрдЭреЗ рдЗрд╕реЗ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдореИрдВ рдмреЗрд╣рддрд░ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП Next.js рдХреЗ рд╕рд╛рде SSR рдХреЛ рддрд░рдЬреАрд╣ рджреВрдВрдЧрд╛ред

рдХреНрдпрд╛ Next.js рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рдкрд░ рдХрд┐рд╕реА рдкреЗрдЬ рдХреЛ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИ рдФрд░ рдлрд┐рд░ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рд╛рдЗрдб рдореЗрдВ рдПрдХ рдмрд╛рд░ рдкреЗрдЬ рд▓реЛрдб рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, Next.js рдиреЗрд╡рд┐рдЧреЗрд╢рди рдХреЛ рд░рд┐рдПрдХреНрдЯ рд░рд╛рдЙрдЯрд░ рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рддрд╣рдд рдХрд░рдиреЗ рджреЗрдЧрд╛, рддрд╛рдХрд┐ рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рдВрдЧреАрдд рд╕реБрди рд░рд╣рд╛ рд╣реИ, рддреЛ Next.js рд▓рд┐рдВрдХ рдЬреАрддрд╛ ' t рд╕рдВрдЧреАрдд рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд░реНрддрдорд╛рди рдкреГрд╖реНрда рдЫреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛?

O. Next.js рдХреЗрд╡рд▓ рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рд░реВрдЯрд┐рдВрдЧ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИ?

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

рдЕрдЧрд▓реЗ рдЬреЗ рдПрд╕ рд░реВрдЯрд░реНрд╕ рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рд▓рдЪреАрд▓рд╛ рд╣реИред https://dev.to/toomuchdesign/next-js-react-router-2kl8

@laurencefass , рдпрд╣ рдПрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд╣реИ, рдореИрдВрдиреЗ рдЗрд╕реЗ рдкрд╣рд▓реЗ рдкрдврд╝рд╛ рдерд╛ред рдФрд░ рд▓реЗрдЦ рдХрд╣рддрд╛ рд╣реИ рдХрд┐ Next.js рдЯреАрдо рдЗрд╕рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдирд╣реАрдВ рдХрд░рддреА рд╣реИ, рдкрддрд╛ рдирд╣реАрдВ рдХреНрдпреЛрдВред рд▓реЗрдХрд┐рди рдпрд╣ рдореБрдЭреЗ рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИ

@KeitelDOG рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рд░рд╛рдЙрдЯрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, Next.js рд░реВрдЯрд┐рдВрдЧ рдЖрдкрдХреЛ рд╕рдорд╛рди рд▓рд╛рдн рд▓рд╛рдПрдЧрд╛, рд╕рд╛рде рд╣реА рдЖрдкрдХрд╛ рдРрдк рдСрдЯреЛрдореИрдЯрд┐рдХ рдХреЛрдб рд╕реНрдкреНрд▓рд┐рдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╣рд▓реНрдХрд╛ рд╣реЛ рдЬрд╛рдПрдЧрд╛ (рдпрд╣ рдХрд┐ рдЖрдк рд░рд┐рдПрдХреНрдЯрд░-рд░рд╛рдЙрдЯрд░ рдХреЗ рд╕рд╛рде рдЖрд╕рд╛рдиреА рд╕реЗ рдирд╣реАрдВ рд╣реЛрдВрдЧреЗ)

_edit: рдореИрдВ рдмрд╕ рдЗрд╕реЗ рдЬреЛрдбрд╝реВрдВрдЧрд╛: рд╢рд╛рдпрдж рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рд░рд╛рдЙрдЯрд░ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рд▓рд╛рдн рдПрдХ рд╣реА рджреГрд╢реНрдп рд╕реБрд╡рд┐рдзрд╛ рдореЗрдВ рдЖрд╕рд╛рди рдиреЗрд╕реНрдЯреЗрдб рдорд╛рд░реНрдЧ рд╣реИрдВ, Next.js рд░рд╛рдЙрдЯрд░ рдХреЛ рдЖрдкрдХреЗ usecases_ рдХрд╛ 95% рд╣рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП

@martpie рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдпрд╣реА рдореИрдВрдиреЗ рдХрд▓ рд░рд╛рдд Link рдШрдЯрдХ рдХреЗ рд╕рд╛рде рджреЗрдЦрд╛ред рддрдм Next.js рдорд┐рдХреНрд╕ рд╕рд░реНрд╡рд░-рдХреНрд▓рд╛рдЗрдВрдЯ рд╣реИ рдЬреЛ рдореБрдЭреЗ рдЪрд╛рд╣рд┐рдП рдерд╛ред

рдФрд░ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдиреЗрд╕реНрдЯреЗрдб рдорд╛рд░реНрдЧреЛрдВ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдШрдЯрдХ рдХреЗ рд▓рд┐рдП, рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд░рд┐рдПрдХреНрдЯ рд░рд╛рдЙрдЯрд░ рдХреЗ рд╕рд╛рде рдЗрд╕реЗ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рд╣реИ рдХрд┐ рдореБрдЭреЗ рдПрдХ рдХрд╛рдо рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдПрдХ рд░рд┐рдПрдХреНрдЯ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХреЛ рдиреЗрдХреНрд╕реНрдЯ.рдЬреЗрдПрд╕ рдореЗрдВ рдирд╣реАрдВ рдмрджрд▓ рд░рд╣рд╛ рд╣реВрдВ, рдмрд▓реНрдХрд┐ рдПрдХ рдЬреЗрдПрд╕ - jQuery рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХреЛ рдЕрдкрдиреЗ рдПрд╕рдИрдУ рдлрд╛рдпрджреЗ рдЦреЛрдП рдмрд┐рдирд╛ рдПрдХ рд░рд┐рдПрдХреНрдЯ рдорд▓реНрдЯреА рдкреЗрдЬ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд░рд╣рд╛ рд╣реВрдВред Google рдкрд░ рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ Next.js рдХреЗ рд╕рд╛рде рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП

@timneutkens Next.js 10 рдореЗрдВ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдпреЛрдЬрдирд╛ рд╣реИ?

@TrejGun рдзрдиреНрдпрд╡рд╛рдж, рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╡рд┐рд╖рдп рдирд╣реАрдВ рд╣реИред

рдХреЛрдИ рдпреЛрдЬрдирд╛ рд╣реИ?
next/router рдорд╣рд╛рди рд╣реИ, рдпрд╣ рдмрд╣реБрдд рд╕рд╣рд╛рдпрддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдЬрдЯрд┐рд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдкреЗрд╢реЗрд╡рд░ рд░рд╛рдЙрдЯрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рд░рд╛рдЙрдЯрд░ рд░рд╛рдЙрдЯрд░ рдореЗрдВ рдПрдХ рдиреЗрддрд╛ рд╣реИред
рд╢рд╛рдпрдж after.js рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

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

рд░рд┐рдПрдХреНрдЯ-рд░рд╛рдЙрдЯрд░ v6 рд╕рдВрд╕реНрдХрд░рдг рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ, рдЬреЛ рдЕрдм рддрдХ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд░рд╛рдЙрдЯрд░ рд╣реЛрдЧрд╛ред рдореИрдВ next.js рд╕рдорд░реНрдерди рдХрд░ рд░рд╣рд╛ рд╣реВрдБред

рдПрдХ рдмреЗрд╣рддрд░ рддрд░реАрдХрд╛ next.js рдФрд░ router , рдЬрд┐рд╕рд╕реЗ рд▓реЛрдЧ рдЕрдкрдиреЗ рдкрд╕рдВрджреАрджрд╛ router рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдЪреБрди рд╕рдХреЗрдВред

рдкрд┐рдЫрд▓реА рдЯрд┐рдкреНрдкрдгреА рдХреЗ рд▓рд┐рдП +1ред рдЕрдЧрд▓реА .js рдЕрджреНрднреБрдд рд╣реИ рдЗрд╕рдХрд╛ рдПрдХрдорд╛рддреНрд░ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ рдпрд╣ рд░рд╛рдЙрдЯрд░ рдкрд░ рд▓рдЪреАрд▓реЗрдкрди рдХреА рдХрдореА рд╣реИред рдХреГрдкрдпрд╛ рднрд╡рд┐рд╖реНрдп рдХреЗ рд░рд┐рд▓реАрдЬрд╝ рдореЗрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд░рд╛рдЙрдЯрд░ 6 рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВ рдпрд╛ рд░рд╛рдЙрдЯрд░ рдХреЛ рд╕реНрд╡реИрдкреЗрдмрд▓ рдмрдирд╛рдПрдВред

рд▓реЛрдЧ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд░рд┐рдПрдХреНрдЯрд░ рд░рд╛рдЙрдЯрд░ рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕реБрдХ рдереЗ, рдирдИ рдкрд░рд┐рдпреЛрдЬрдирд╛ "рд░реАрдорд┐рдХреНрд╕" рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдореЗрдВ рд░реБрдЪрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдпрд╣ рдПрдХ рдЕрдЧрд▓рд╛.рдЬреЗрдПрд╕ рд╡рд┐рдХрд▓реНрдк рд╣реИ рдЬреЛ рдПрдХ рд╣реА рд░рдЪрдирд╛рдХрд╛рд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рд░рд┐рдПрдХреНрдЯ рд░рд╛рдЙрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ:

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ SSR, рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рдкреНрд░реЙрдкреНрд╕ рдЖрджрд┐ рдХреЗ рдХрд╛рд░рдг рдлреНрд░реЗрдорд╡рд░реНрдХ рдЙрд╕ рд░рд╛рдЙрдЯрд░ рд╕реЗ рдЧрд╣рд░рд╛рдИ рд╕реЗ рдмрдВрдзрд╛ рд╣реБрдЖ рд╣реИред

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

рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рд░рд┐рд▓реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рд░рд╛рдЙрдЯрд░ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЖрдк facebook.com рдкрд░ рдПрдХ рдЬрдЯрд┐рд▓ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдирд╣реАрдВ рд╣реЛрдиреЗ рдХрд╛ рдЖрд░реЛрдк рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдиреЗрдХреНрд╕реНрдЯ рд░рд╛рдЙрдЯрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЦреНрдп рд╕рдлрд▓ рд░рдгрдиреАрддрд┐ рдХрдВрдкреЛрдЬрд┐рдмрд┐рд▓рд┐рдЯреА (рдЬреЛ рдХрд┐ рдЖрдзреБрдирд┐рдХ рд░рд┐рдПрдХреНрдЯ рдореЗрдВ рд╡реИрд╕реЗ рднреА рдбреНрд░рд╛рдЗрд╡рд┐рдВрдЧ рдЯреНрд░реЗрдВрдб рд╣реИ) рдореЗрдВ рдЭреБрдХрд╛рд╡ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЖрдк рдкреНрд░рдореБрдЦ SSR рдХреЗ рдШрдЯрдХреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рдХреБрд╢рд▓ SSR рднреА рд╣реИ рдЬреЛ рдЗрд╕рдХреЗ рд╕рднреА рдбреЗрдЯрд╛ рдХреЛ рд▓рд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИ ( getInitialProps рдорд╛рдзреНрдпрдо рд╕реЗ) рдХрднреА рднреА рд░рд┐рдПрдХреНрдЯрд░ рд░реЗрдВрдбрд░рд░ рд╕реЗ рдмрд╛рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗред

рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдЬреИрд╕реЗ рдкреЗрдбрд╝ рдкрд░ рдЪрд▓рдиреЗ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреА рд╕рдЬрд╛ рдЦрддреНрдо рд╣реЛ рдЧрдИ рд╣реИред рдЖрдЬ рдХрдИ рдкреНрд░реЛрдбрдХреНрд╢рди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЬреИрд╕реЗ рдХрд┐ рдЕрдкреЛрд▓реЛ рдХреЗ рд╕рд╛рде рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдпрд╣ рдареАрдХ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред

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

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

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

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

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

рдЕрдЧрд▓реЗ 9.3 рдХреЗ рд░реВрдк рдореЗрдВ, рд╡рд╣рд╛рдБ getStaticPaths getServerSideProps рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЛ рдкреВрд░реНрд╡-рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╛рд╕реНрддреЛрдВ рдХреА рдЦреЛрдЬ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрдм рдкрде рдХреЗ рдорд╛рд░реНрдЧ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИрдВред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рд░рд╛рдЙрдЯрд░ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╛рди рджреГрд╖реНрдЯрд┐рдХреЛрдг рд▓рд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

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

Naive question: рдХреНрдпрд╛ рдЖрдк рдХреЗрд╡рд▓ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рдЪрд▓ рд░рд╣реЗ рдХреЛрдб рдХреЛ рдПрдХ рдмрд╛рд░ рд╢реАрд░реНрд╖ рд╕реНрддрд░ рд▓рд┐рдВрдХ рдФрд░ рд▓рд╛рдиреЗ / рдкреНрд░реАрдЪреЗрдЯ / рдХреИрд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдХрд┐ рдХреНрд▓рд╛рдЗрдВрдЯ рдХрд╣рд╛рдВ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░реЗрдЧрд╛, рддреЛ рдХреНрдпрд╛ рдпрд╣ рд╕рд░реНрд╡рд░ рдкрд░ DOM рдЯреНрд░реА рдХреЛ рдкреАрдЫреЗ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ?

рд╕рдХреНрд░рд┐рдп рдХрд╛рд░реНрдп рдкрд░рд┐рджреГрд╢реНрдп: рдЬрдм рдХреНрд▓рд╛рдЗрдВрдЯ рдПрдХ URL рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИ рддреЛ рдмрд╕ рд╢реАрд░реНрд╖ рд╕реНрддрд░ рд▓рд┐рдВрдХ рдФрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕рдХреНрд░рд┐рдп рд▓рд┐рдВрдХ рд╕рд╛рдордЧреНрд░реА рдФрд░ ajax / рд╕рдм рдХреБрдЫ рдЕрдиреБрд░реЛрдз рдкрд░ рдкреНрд░рд╕реНрддреБрдд рдХрд░реЗрдВ (рдпрд╛ рдкреГрд╖реНрда рд▓реЛрдб рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдПрдХ рдмрд╛рд░ рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдкреНрд░реАрдлрд╝реЗрдХ рдХрд░реЗрдВ) ... рдмрд╛рдХреА рд╕рднреА рдореЗрдВ рд╕рднреА рдирд┐рдЪрд▓реЗ рд╕реНрддрд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдорд╛рд░реНрдЧреЛрдВ ... рдХреБрд▓реНрд▓рд╛ рдФрд░ рджреЛрд╣рд░рд╛рдирд╛ ...?

@laurencefass рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╢реАрд░реНрд╖ рд╕реНрддрд░ рдХреЗ рд▓рд┐рдВрдХ рдХреЛрдб рдореЗрдВ рд╣реИрдВ рдФрд░ рд╕рд╣реА рдЦреЛрдЬреЗ рдЬрд╛рдиреЗ рд╣реИрдВ? рдпрд╛ рдХреНрдпрд╛ рдЖрдк рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рд░рд╛рдЙрдЯрд░ рдХреЗ рд╕рд╛рде рдлрд╝рд╛рдЗрд▓-рд╕рд┐рд╕реНрдЯрдо рд░реВрдЯрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдорддрд▓рдм рд╣реИ рддрд╛рдХрд┐ рд╢реАрд░реНрд╖ рд╕реНрддрд░ рдХреЗ рд▓рд┐рдВрдХ рдЦреЛрдЬреЗ рдЬрд╛ рд╕рдХреЗрдВ?

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

Next.js рдХреЗ рд╕рд╛рде рдореБрдЦреНрдп рдореБрджреНрджрд╛ рд░рд╛рдЙрдЯрд░ рдирд╣реАрдВ рд╣реИ, рдпрд╣ getInitialProps , getServerProps рдпрд╛ getStaticProps рд╕рд╛рде рдбреЗрдЯрд╛ рд▓рд╛рдиреЗ рд╡рд╛рд▓рд╛ рдкреИрдЯрд░реНрди рд╣реИред рдХреНрдпреЛрдВ ? рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдШрдЯрдХ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛-рдЕрд▓рдЧрд╛рд╡ рдХреЛ рддреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдореЗрдиреВ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЖрдк рдЗрд╕реЗ рдХрд╣рд╛рдВ рд╕реЗ рд▓рд╛рдПрдВрдЧреЗ? рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ред pages рдЬреИрд╕реЗ рд╢реАрд░реНрд╖ рдШрдЯрдХреЛрдВ рдХреЛ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рднреА рдкрддрд╛ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд╣реИ рдирд╛?

Next.js рдХреЗ рд╕рд╛рде рдореБрдЦреНрдп рдореБрджреНрджрд╛ рд░рд╛рдЙрдЯрд░ рдирд╣реАрдВ рд╣реИ, рдпрд╣ getInitialProps , getServerProps рдпрд╛ getStaticProps рд╕рд╛рде рдбреЗрдЯрд╛ рд▓рд╛рдиреЗ рд╡рд╛рд▓рд╛ рдкреИрдЯрд░реНрди рд╣реИред рдХреНрдпреЛрдВ ? рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдШрдЯрдХ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛-рдЕрд▓рдЧрд╛рд╡ рдХреЛ рддреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдореЗрдиреВ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЖрдк рдЗрд╕реЗ рдХрд╣рд╛рдВ рд╕реЗ рд▓рд╛рдПрдВрдЧреЗ? рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ред pages рдЬреИрд╕реЗ рд╢реАрд░реНрд╖ рдШрдЯрдХреЛрдВ рдХреЛ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рднреА рдкрддрд╛ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд╣реИ рдирд╛?

рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдмрддрд╛рдПрдВрдЧреЗред рдФрд░ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕рдорд╛рдзрд╛рди рдХреНрдпрд╛ рд╣реИ?

@ рдирдорд╕реНрдХрд╛рд░ рдореБрдЭреЗ рдпрд╣рд╛рдВ рдереЛрдбрд╝рд╛ рд╕рд╛ рд╡рд┐рд╖рдп рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИ, рд▓реЗрдХрд┐рди рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд░рд╛рдЙрдЯрд░ рдпрд╣рд╛рдВ рдореБрдЦреНрдп рдореБрджреНрджрд╛ рд╣реИред Next.js рд░рд╛рдЙрдЯрд░ рдЕрдЪреНрдЫрд╛ рд╣реИ, рдШреЛрд╖рдгрд╛рддреНрдордХ рд╣реИ, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкрд░ рдХрдиреНрд╡реЗрдВрд╢рди рдЕрдЪреНрдЫрд╛ рд╣реИред рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдЬрд┐рд╕реЗ рдореИрдВ Next.js рдореЗрдВ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рд╡рд╣ рд╣реИ getInitialProps , рдЬреИрд╕реЗ рдбреЗрдЯрд╛ рд▓рд╛рдиреЗ рдХреЗ рддрд░реАрдХреЗ ...
рдореЗрд░реЗ рдРрдкреНрд╕ рдореЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдХ рдХреЛ рдЕрдкрдирд╛ рдбреЗрдЯрд╛ рдЙрд╕реА рд╕реНрдерд╛рди рдкрд░, рдЙрд╕реА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ, рдЬрд┐рд╕реЗ рд╡рд╣ рдЧреНрд░рд╛рдлрд╝рд┐рдХрд▓ рдпрд╛ рдмрд╛рдХреА рд╣реИ, рдареАрдХ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
рд╢реАрд░реНрд╖ рдкреГрд╖реНрда рдШрдЯрдХ рдХреЗрд╡рд▓ рдмрд╛рд▓ рдШрдЯрдХреЛрдВ рдХреА рд░рдЪрдирд╛ рдХреЗ рд▓рд┐рдП рд╣реИ, рдФрд░ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЗрд╕рдХрд╛ рдХрд╛рдо рдирд╣реАрдВ рд╣реИред рдмрд╛рд▓ рдШрдЯрдХ рдХреЛ рд╕реНрд╡рдпрдВ рдХрд╛ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рди рдХрд┐ рдЙрд╕рдХреЗ рдорд╛рддрд╛-рдкрд┐рддрд╛ рд╕реЗред

рдпрд╣рд╛рдБ рдореЗрд░реЗ рдХреЛрдб рдХрд╛ рдирдореВрдирд╛ рд╣реИ рдЬреЛ рдореИрдВ рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдРрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ:

const query = `
{
  result:users(
    where:{
      _and:[{
        active:{
          _eq:true
        }
      }, {
        is_exam_manager:{
          _eq:true
        }
      }]
    },
    order_by:{
      created_at:desc_nulls_last
    }
  ){
    id
    key:id
    user_code
    first_name
    last_name
    password
    active
  }
}
`
const Main = (props: any) => {
  const {
    data: { result }
  } = props
  return (
    <div>
      <Add title={'Add user'} role={'exam_manager'} />
      <Table
        columns={columns}
        dataSource={result}
        bordered={true}
        size={'small'}
      />
    </div>
  )
}
const MainWithData = graphql(query)(Main)
export default MainWithData

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦрддреЗ рд╣реИрдВ, рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕реНрд╡рдпрдВ рдХреЗ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдШрдЯрдХ рд╣реИред рдЖрдк рдЗрд╕реЗ рдЕрдкрдиреА рдЗрдЪреНрдЫрд╛рдиреБрд╕рд╛рд░ рдХрд╣реАрдВ рднреА рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВред

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

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

рдореИрдВ рдЙрд╕реА рддрд░рд╣ рдЗрд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рддрд╛ рд╣реВрдВред
рддреЛ рдЖрдк SSR рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ ...
рдлрд┐рд░ рдХреИрд╕реЗ рд▓реЛрдЧ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ Next.js рдХреЗ рд╕рд╛рде SSR рд▓рд╛ рд░рд╣реЗ рд╣реИрдВ?

@linshine рдХреЛ рд╣рдореЗрдВ рд╢реАрд░реНрд╖ рдкреГрд╖реНрда рд╕реНрддрд░ рдкрд░ рдЬреЛ рднреА рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдЙрд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

@ рдирдорд╕реНрдХрд╛рд░ рдореБрдЭреЗ рдпрд╣рд╛рдВ рдереЛрдбрд╝рд╛ рд╕рд╛ рд╡рд┐рд╖рдп рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИ, рд▓реЗрдХрд┐рди рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд░рд╛рдЙрдЯрд░ рдпрд╣рд╛рдВ рдореБрдЦреНрдп рдореБрджреНрджрд╛ рд╣реИред Next.js рд░рд╛рдЙрдЯрд░ рдЕрдЪреНрдЫрд╛ рд╣реИ, рдШреЛрд╖рдгрд╛рддреНрдордХ рд╣реИ, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкрд░ рдХрдиреНрд╡реЗрдВрд╢рди рдЕрдЪреНрдЫрд╛ рд╣реИред рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдЬрд┐рд╕реЗ рдореИрдВ Next.js рдореЗрдВ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рд╡рд╣ рд╣реИ getInitialProps , рдЬреИрд╕реЗ рдбреЗрдЯрд╛ рд▓рд╛рдиреЗ рдХреЗ рддрд░реАрдХреЗ ...
рдореЗрд░реЗ рдРрдкреНрд╕ рдореЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдХ рдХреЛ рдЕрдкрдирд╛ рдбреЗрдЯрд╛ рдЙрд╕реА рд╕реНрдерд╛рди рдкрд░, рдЙрд╕реА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ, рдЬрд┐рд╕реЗ рд╡рд╣ рдЧреНрд░рд╛рдлрд╝рд┐рдХрд▓ рдпрд╛ рдмрд╛рдХреА рд╣реИ, рдареАрдХ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
рд╢реАрд░реНрд╖ рдкреГрд╖реНрда рдШрдЯрдХ рдХреЗрд╡рд▓ рдмрд╛рд▓ рдШрдЯрдХреЛрдВ рдХреА рд░рдЪрдирд╛ рдХреЗ рд▓рд┐рдП рд╣реИ, рдФрд░ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЗрд╕рдХрд╛ рдХрд╛рдо рдирд╣реАрдВ рд╣реИред рдмрд╛рд▓ рдШрдЯрдХ рдХреЛ рд╕реНрд╡рдпрдВ рдХрд╛ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рди рдХрд┐ рдЙрд╕рдХреЗ рдорд╛рддрд╛-рдкрд┐рддрд╛ рд╕реЗред

рдпрд╣рд╛рдБ рдореЗрд░реЗ рдХреЛрдб рдХрд╛ рдирдореВрдирд╛ рд╣реИ рдЬреЛ рдореИрдВ рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдРрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ:

...

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦрддреЗ рд╣реИрдВ, рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕реНрд╡рдпрдВ рдХреЗ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдШрдЯрдХ рд╣реИред рдЖрдк рдЗрд╕реЗ рдЕрдкрдиреА рдЗрдЪреНрдЫрд╛рдиреБрд╕рд╛рд░ рдХрд╣реАрдВ рднреА рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВред

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

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

рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд░рд┐рд▓реЗ-рдиреЗрдХреНрд╕реНрдЯ рдРрдк рд╣реИ рдФрд░ рдпрд╣ рдкреИрдЯрд░реНрди рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдбреЗрдЯрд╛-рдПрдирдХреИрдкреНрд╕реБрд▓реЗрд╢рди рдФрд░ рдкреБрди: рдкреНрд░рдпреЛрдЬреНрдп рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд╕рд╛рде, рдФрд░ рд╣рдо рдЖрд╕рд╛рдиреА рд╕реЗ getInitialProps рд▓рд╛рдн рдЙрдард╛рддреЗ рд╣реИрдВред

@merrywhether much harder in REST рдмрд╛рд░реЗ рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдореЗрдВ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ рдХрд┐, рдЖрдк рддрдп рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреМрди рд╕рд╛ fragments SSG / SSR рд╣реЛрдЧрд╛ рдпрд╛ CSR рд╣реЛрдЧрд╛ред
рдореЗрд░реЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдореЗрдВ, { noSSR: true/false} рд╕рд╛рде рдЙрд╕ рдШрдЯрдХ рдХреЛ рдЖрдпрд╛рдд рдХрд░рдирд╛ рдЬрд┐рддрдирд╛ рдЖрд╕рд╛рди рд╣реИред

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

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

рдореИрдВ SSR рдХреЗ рд▓рд┐рдП рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ react-router / @reach/router рдХреЗ рдШрдЯрдХ рдЖрдзрд╛рд░рд┐рдд рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп API рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХрдард┐рдирд╛рдИ рдХреЛ рд╕рдордЭрддрд╛ рд╣реВрдВред рд▓реЗрдХрд┐рди рдпрд╣ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╕реНрдЯрдо рд╣реЛрдиреЗ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИред рдЧреИрдЯреНрд╕рдмреА рдХреЗ рдПрд╕рдПрд╕рдЬреА рдореЗрдВ рдиреЗрдХреНрд╕реНрдЯ.рдЬреЗрдПрд╕ рдФрд░ рдПрдХ рдЕрд░реНрдз-рд╕рдорд╛рди рдлрд╝рд╛рдЗрд▓ рдЖрдзрд╛рд░рд┐рдд рд░реВрдЯрд┐рдВрдЧ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд╕рдорд╛рди рдЪрд┐рдВрддрд╛рдПрдВ рд╣реИрдВ; рд▓реЗрдХрд┐рди рдореЗрд░реА рд╕рдордЭ рдореЗрдВ рдЧреИрдЯреНрд╕рдмреА рдиреЗ рдкрд╣рд┐рдпрд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рдордЬрдмреВрдд рдХрд░рдиреЗ рдпрд╛ рдПрдХ рд▓рд┐рдВрдХ рдПрдкреАрдЖрдИ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЕрдкрдиреЗ рд░реВрдЯрд┐рдВрдЧ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рд╢рдХреНрддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реБрдб рдХреЗ рдиреАрдЪреЗ @reach/router рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ рдЕрдиреНрдп рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рд▓рд┐рдВрдХ рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдЕрд╕рдВрдЧрдд рд╣реИред

@ рдбреЗрдВрдЯрдореИрди рдореИрдВ рдкреВрдЫ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдкрдиреЗ Next.js рд╡рд┐рдХрд▓реНрдк рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдЪреБрдирд╛ред рдорд╛рди рд▓рд┐рдпрд╛ рдЬрд╛рдП рдХрд┐ рдЖрдкрдХреЛ рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ .... рдореИрдВ рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдмрд╛рдж рдореЗрдВ рд╢рд╛рдпрдж рдпрд╣ рдХреБрдЫ рдкреНрд░реЗрд░рдгрд╛ / рд╡рд┐рдЪрд╛рд░ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ Next.js рдореЗрдВ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдП рдпрджрд┐ zeit рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред

@ рдбреЗрдВрдЯрдореИрди рдореИрдВ рдкреВрдЫ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдкрдиреЗ Next.js рд╡рд┐рдХрд▓реНрдк рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдЪреБрдирд╛ред рдорд╛рди рд▓рд┐рдпрд╛ рдЬрд╛рдП рдХрд┐ рдЖрдкрдХреЛ рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ .... рдореИрдВ рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдмрд╛рдж рдореЗрдВ рд╢рд╛рдпрдж рдпрд╣ рдХреБрдЫ рдкреНрд░реЗрд░рдгрд╛ / рд╡рд┐рдЪрд╛рд░ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ Next.js рдореЗрдВ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдП рдпрджрд┐ zeit рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред

рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореЗрд░реЗ рдкрд╛рд╕ рдЖрдкрдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рдЙрддреНрддрд░ рдирд╣реАрдВ рд╣реИред SSR рдПрдХ рдХрдард┐рди рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рдереА рдЗрд╕рд▓рд┐рдП рд╣рдо рд╕рд┐рд░реНрдл CRA рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд░рд╣реЗ, рдЬрд┐рд╕реЗ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХреЗ рд╕рд╛рде рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ Next.js рдиреЗ рдПрдХ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдврд╛рдВрдЪреЗ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╣рд╛рд▓ рд╣реА рдореЗрдВ SSR / SSG / рдЧреНрд░рд╛рд╣рдХ-рдХреЗрд╡рд▓ рдкреГрд╖реНрдареЛрдВ рдХреЗ рдорд┐рд╢реНрд░рдг рдХреА рдХреНрд╖рдорддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рдЪреБрдХрд╛ рд╣реИ рдФрд░ рдпрд╣ рдПрдХ рдЖрдЗрд╕реЛрдореЛрд░реНрдлрд┐рдХ рдРрдк рдХреЗ рд░реВрдк рдореЗрдВ рдпрд╛ рдПрдХ рд╕реНрдерд┐рд░ / PWA рдРрдк рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд▓ рд╕рдХрддрд╛ рд╣реИред рд╡реЗрдмрдкреИрдХ рдЕрдиреБрдХреВрд▓рди рд▓реБрднрд╛рд╡рдирд╛ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рд╕реАрдЖрд░рдП рд╡реИрд╢реНрд╡реАрдХрд░рдг-рд╕рдВрдХрд▓рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрдард┐рди рдмрдирд╛ рд░рд╣рд╛ рд╣реИред Next.js рд╕рд░реНрд╡рд░ рдПрдХ рддрдЯрд╕реНрде / рд╕рдХрд╛рд░рд╛рддреНрдордХ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рд╣рдореЗрдВ рдПрдХ рдЧреНрд░рд╛рдл рд╕рд░реНрд╡рд░ / REST рдмреНрд░рд┐рдЬ рдХреЗ рд▓рд┐рдП рдПрдкреАрдЖрдИ рд╕рд░реНрд╡рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рдФрд░ SSR / SSG рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдПрдХ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдХреЛрд░ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдПрдХ рдЖрдзрд╛ рджрд░реНрдЬрди рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЖрдзрд╛рд░рд┐рдд рд╣реЛрдВрдЧреЗ рдФрд░ рдпрд╣ рдЕрд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореЗрд░реЗ рдкрд╛рд╕ рдХреБрдЫ рдореБрджреНрджреЗ рднреА рдереЗред Next.js рдХреЗ SSR рдХреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдФрд░ рдпреЗ рд╕рдХрд╛рд░рд╛рддреНрдордХ рд░рд╛рдЙрдЯрд░ рдХреЗ рдХрд╛рд░рдг рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдкрд░реЗрд╢рд╛рдиреА рдХреЗ рд▓рд╛рдпрдХ рдирд╣реАрдВ рдереЗред

@dantman

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

рдпрд╣ рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдПрдХ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рдШрдЯрдХ рдХреЛ рдЕрд░реНрд╣рддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рдЕрдЬреАрдм рд╣реИ рдЬреЛ 3 рд╕рд╛рд▓ рдореЗрдВ рдЗрд╕рдХреА рдорд╣рд╛рди рд╕реНрдерд┐рд░рддрд╛ рдФрд░ "рдЙрддреНрдкрд╛рдж / рдмрд╛рдЬрд╛рд░ рдлрд┐рдЯ" рдХреЗ рдХрд╛рд░рдг "рд▓реЙрдХ-рдЗрди" рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдирд╣реАрдВ рд╣реБрдЖ рд╣реИред

Next.js рд╕рдлрд▓ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЕрдкрдиреЗ рд░рд╛рдЙрдЯрд░ рдХреЗ рдХрд╛рд░рдг рдРрд╕рд╛ рд╡рд┐рдХрд╛рд╕ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдЬреЛ

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

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

рдЬрдм рдореИрдВ рдХрд╣рддрд╛ рд╣реВрдВ рдХрд┐ рд░рд╛рдЙрдЯрд░ рдХреА рд╡рдЬрд╣ рд╕реЗ рдиреЗрдХреНрд╕реНрдЯ рд╕рдлрд▓ рд╣реБрдЖ, рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдиреЗ рджреЛ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдЦрддреНрдо рдХрд░ рджрд┐рдпрд╛ рд╣реИ:
1 to рд░рд╛рдЙрдЯрд░ рдЪреБрдирдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ ред рдЗрд╕реЗ рд╣рдЯрд╛рдиреЗ рд╕реЗ рд╣рдо рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рдирд┐рд░реНрдгрдп рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕рднреА рд╕рдордп рдореЗрдВ Next.js рдХреЗ рд╕рд╛рде рдЗрд╕рдХрд╛ рд╕реНрдерд┐рд░ рд░рд╛рдЙрдЯрд░ рдореМрдЬреВрдж рд╣реИ, рд░рд╛рдЙрдЯрд░ рдХреА рджреБрдирд┐рдпрд╛ рдиреЗ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдПрдкреАрдЖрдИ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдФрд░ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рд╣реИ

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

рдореИрдВ рдЗрд╕ рдЕрдВрддрд┐рдо рдмрд┐рдВрджреБ рдкрд░ рдЬреЛрд░ рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рджреБрдирд┐рдпрд╛ рдХреА рд╕рдмрд╕реЗ рдирдИ рдФрд░ рд╕рдмрд╕реЗ рддреЗрдЬреА рд╕реЗ рдмрдврд╝рддреА рд╡реЗрдмрд╕рд╛рдЗрдЯреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ, TikTok.com, Next.js. рдкрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЙрд╕ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХреЗ рдкреВрд░реЗ рд░реВрдЯрд┐рдВрдЧ рдЯреЛрдкреЛрд▓реЙрдЬреА рдХреЛ рдЙрд╕ рджреЛ рд╕реЗрдХрдВрдб рд▓рд░реНрдирд┐рдВрдЧ рдХрд░реНрд╡ рдХреЗ рд╕рд╛рде рд╕рдордЭрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред https://www.tiktok.com/@sheezus.christ/video/6824007862197439750 pages/[user]/video/[id].js рдФрд░ https://www.tiktok.com/trending pages/trending.js

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

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореЗрд░реЗ рдкрд╛рд╕ рдХреБрдЫ рдореБрджреНрджреЗ рднреА рдереЗред Next.js рдХреЗ SSR рдХреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдФрд░ рдпреЗ рд╕рдХрд╛рд░рд╛рддреНрдордХ рд░рд╛рдЙрдЯрд░ рдХреЗ рдХрд╛рд░рдг рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдкрд░реЗрд╢рд╛рдиреА рдХреЗ рд▓рд╛рдпрдХ рдирд╣реАрдВ рдереЗред

рдЗрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реБрдирдХрд░ рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛ред рдКрдкрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдЙрджрд╛рд╣рд░рдг Next.js рд╣рд╛рдЗрдмреНрд░рд┐рдб рд╕реНрдЯреЗрдЯрд┐рдХ / SSR рджреНрд╡рд╛рд░рд╛ рд╕рдВрдЪрд╛рд▓рд┐рдд рд╣реИ рдФрд░ рд╣рдо рдЗрд╕реЗ рдмреЛрд░реНрдб рднрд░ рдореЗрдВ рдмрд╣реБрдд рд╕реА рд╕рдлрд▓рддрд╛ рджреЗрдЦрддреЗ рд╣реИрдВ!

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

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

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

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

@ рдХреНрд░реИрдХрдЧ рдЖрдк рджреЛ рдкреНрд░реЙрдкреНрд╕ рдХреЗ рдкреАрдЫреЗ рдХрд╛ рдХрд╛рд░рдг рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ, href рдФрд░ as рдПрдХ рд▓рд┐рдВрдХ? as рдкреНрд░реЛрдк рдХреЗ рдореВрд▓реНрдп рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдпрд╣ рдЗрдЪреНрдЫрд┐рдд рдкреГрд╖реНрда рдХрд╛ рдЕрдиреБрдорд╛рди рдХреНрдпреЛрдВ рдирд╣реАрдВ рд▓рдЧрд╛ рд╕рдХрддрд╛?

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдпрджрд┐ рдореЗрд░реЗ рдкрд╛рд╕ /blog/:slug рдорд╛рд░реНрдЧ рд╣реИ, рддреЛ рдореИрдВ рдмрд╕ /blog/hello-world рд▓рд┐рдП http рдЕрдиреБрд░реЛрдз рднреЗрдЬ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ рд░рд╛рдЙрдЯрд░ рд╕реЗ рдЗрд╕реЗ рд░реВрдЯ рдХрд░рдиреЗ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдореБрдЭреЗ рд╕рд░реНрд╡рд░ рдкрд░ /blog/:slug рдФрд░ blog/hello-world рднреЗрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

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

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдореБрджреНрджрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдореМрдЬреВрдж рд╣реИ https://github.com/zeit/next.js/issues/8207

рдпрджрд┐ рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ "рдиреЗрд╕реНрдЯреЗрдб рд░реВрдЯреНрд╕" рдлреАрдЪрд░ рдЬреИрд╕реЗ рд░рд┐рдПрдХреНрдЯрд░-рд░рд╛рдЙрдЯрд░ рдХреЗ рд▓рд┐рдП рджреЗрдЦрддрд╛ рд╣реИ, рдЬреЛ рдореЗрд░реЗ рдЬреИрд╕реЗ рд╕рдм рдХреБрдЫ рдлрд┐рд░ рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдП рдмрд┐рдирд╛ рдирдП рдкреГрд╖реНрдареЛрдВ рдкрд░ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рддреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╕рдорд░реНрдкрд┐рдд рдореБрджреНрджрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╡реЛрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореБрдЭреЗ рдЕрднреА рдЙрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ: https://github.com/zeit/next.js/issues/8193

@rauchg

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

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЧреИрдЯреНрд╕рдмреА рдХрд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИред рдЙрдирдХреЗ рдкрд╛рд╕ рдПрдХ рдПрд╕рдПрд╕рдЬреА рд╕рдХреНрд╖рдо рдлрд╝рд╛рдЗрд▓ + рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЖрдзрд╛рд░рд┐рдд рд░реВрдЯрд┐рдВрдЧ рдПрдкреАрдЖрдИ рд╣реИ рдФрд░ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЙрдиреНрдирдд рд▓рд┐рдВрдХ рдШрдЯрдХ рдХреЛ рдирд┐рд░реНрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВ; рд▓реЗрдХрд┐рди рд╡реЗ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП @reach/router рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред

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

рдпрд╣ рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдПрдХ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рдШрдЯрдХ рдХреЛ рдЕрд░реНрд╣рддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рдЕрдЬреАрдм рд╣реИ рдЬреЛ 3 рд╕рд╛рд▓ рдореЗрдВ рдЗрд╕рдХреА рдорд╣рд╛рди рд╕реНрдерд┐рд░рддрд╛ рдФрд░ "рдЙрддреНрдкрд╛рдж / рдмрд╛рдЬрд╛рд░ рдлрд┐рдЯ" рдХреЗ рдХрд╛рд░рдг "рд▓реЙрдХ-рдЗрди" рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдирд╣реАрдВ рд╣реБрдЖ рд╣реИред

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

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

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ рдЙрд▓рдЭрди рдореЗрдВ рд╣реВрдВ рдХрд┐ рдЖрдкрдХреЗ рдорди рдореЗрдВ рдХреМрди рд╕рд╛ рдорд╛рдирдХ рд╣реИ, рд░реАрдЪ рдпрд╛ рд░рд┐рдПрдХреНрдЯ рд░рд╛рдЙрдЯрд░, рдФрд░ рдХрд┐рд╕ рдкреНрд░рдореБрдЦ рд╕рдВрд╕реНрдХрд░рдг рдкрд░

<Link> рдХреНрдпрд╛ рджрд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рддрдереНрдп рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВред рд░реАрдЪ рдФрд░ рд░рд┐рдПрдХреНрдЯ рд░рд╛рдЙрдЯрд░ (рдЖрд░рдЖрд░) рджреЛрдиреЛрдВ рдмрд╣реБрдд рд╕рдорд╛рди рдПрдкреАрдЖрдИ рд╕рд╛рдЭрд╛ рдХрд░рддреЗ рд╣реИрдВред рдЬреИрд╕реЗ <Link to='/about'>About</Link> RR рдФрд░ Reach рджреЛрдиреЛрдВ рдореЗрдВ рдорд╛рдиреНрдп рд╣реИ (рдФрд░ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ Gatsby)ред рдЬреЛ рдиреЗрдХреНрд╕реНрдЯ.рдЬреЗрдПрд╕ рдХреЗ рдЖрдЗрдбрд┐рдпрд▓рд╕реЛрдирд┐рдХ <Link href='/about'><a>About</a></Link> рдЗрддрдирд╛ рдЕрдзрд┐рдХ рдЪрд┐рдврд╝рд╛рддрд╛ рд╣реИред

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

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

рдореИрдВрдиреЗ рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ рдиреЗрдХреНрд╕реНрдЯ рдХрд┐рдпрд╛ рдерд╛ рд▓реЗрдХрд┐рди рд░рд╛рдЙрдЯрд░ рдкрд░ рд▓рдЪреАрд▓реЗрдкрди рдХреА рдХрдореА рдХреЗ рдХрд╛рд░рдг рдореБрдЭреЗ Razzle рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рдЦреЛрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛ ред

рдЬреИрд╕рд╛ рдХрд┐ рд░рд┐рдПрдХреНрдЯ рд░рд╛рдЙрдЯрд░ рд╕рд┐рд░реНрдл рдПрдХ рдкреИрдХреЗрдЬ рд╣реИ, рдХреНрдпрд╛ рд╣рдо рдЗрд╕реЗ рдЖрдпрд╛рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХреЗрд╡рд▓ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рд╛рдЗрдб рддрдХ рд╣реА рд╕реАрдорд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдПрд╕рдкреАрдП рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдЗрд╕рдХреА рдЬрд░реВрд░рдд рд╣реИ рдФрд░ рд╣рдореЗрдВ рдиреЗрд╕реНрдЯреЗрдб рдШрдЯрдХ рд░реВрдЯ рджреЗрддреЗ рд╣реИрдВ? Isnt React рд░реВрдЯрд░ рд╕рд┐рд░реНрдл (рд╕рдВрднрд╛рд╡рд┐рдд) рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдШрдЯрдХреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИ рдЬреЛ рдкреГрд╖реНрдареЛрдВ рдореЗрдВ рдПрдореНрдмреЗрдбреЗрдб рд╣реИ рдФрд░ рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рдШрдЯрдХреЛрдВ рдХреА рддрд░рд╣ Next.js рдкреГрд╖реНрда рд░реВрдЯрд░ рдХреЗ рд╕рд╛рде рд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ?

рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдереНрд░реЗрдбреНрд╕ рдореЗрдВ рдкрдврд╝рд╛ рдХрд┐ рдЖрд░рдЖрд░ рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╝реАрдЗрдЯ рдХреА рдпреЛрдЬрдирд╛ рдХреНрдпрд╛ рдЖрдЬ рднреА рд╕рдЪ рд╣реИ?

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

рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдЕрдкрдирд╛ рд╡реЛрдЯ рдЬреЛрдбрд╝ рд░рд╣рд╛ рд╣реВрдВред

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

Next.js рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реА рдЕрдЪреНрдЫреА рд╕реБрд╡рд┐рдзрд╛рдПрдБ рд╣реИрдВ (рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╡реЗрдмрдкреИрдХ, рд╕реНрдЯреИрдЯрд┐рдХ рдлрд╛рдЗрд▓реНрд╕, рдФрд░ рдЯрд╛рдЗрдкрдЖрд░рдП рдЬреИрд╕реЗ CRA рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ PWA, API рд░реВрдЯреНрд╕ рд╕реЗ рдЕрдзрд┐рдХ рдХреЗ рд▓рд┐рдП; рд╕рд░реНрд╡рд░рд▓реЗрд╕ рд╕рдкреЛрд░реНрдЯ, рдлрд╛рд╕реНрдЯ рд░рд┐рдлреНрд░реЗрд╢ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рдПрдХреНрд╕рдкреЛ рд╕рдкреЛрд░реНрдЯ рд╡реЗрдм + рдиреЗрдЯрд┐рд╡ рдПрдкреНрд╕ рдХреЗ рд▓рд┐рдП) рдФрд░ рдПрдХ рдХреЛрд░ SSR рдФрд░ SSG рдХреЗ рд▓рд┐рдП рднрд▓реЗ рд╣реА рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдкреАрдЖрдИ рдмрдврд╝рд┐рдпрд╛ рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдЬрдм рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд░реВрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдФрд░ рдПрд╕рдПрд╕рдЖрд░ / рдПрд╕рдПрд╕рдЬреА рдХреБрдЫ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ; рджреВрд╕рд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╡реЗ рд╡рд┐рдХрд╛рд╕ рдХрд╛ рд╢реМрдХ рд░рдЦрддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рджреЛрдиреЛрдВ рдПрдкреАрдЖрдИ рдХреА рд╕реАрдорд╛рдПрдВ рдЙрдХреНрдд рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдЧрд▓рдд рд╡реНрдпрд╛рдкрд╛рд░ рдХреА рдкреЗрд╢рдХрд╢ рдХрд░рддреА рд╣реИрдВред

рдХреИрд╕реЗ рдПрдХ рд╕рдордЭреМрддрд╛ Next.js рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреНрд▓рдЧрдЗрдиреНрд╕ рд╣реИрдВред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рд░рд╛рдЙрдЯрд░ рдХреЛ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдмрджрд▓рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЕрдЧрд░ рд╣рдордиреЗ рд░рд╛рдЙрдЯрд░ рдФрд░ рдПрд╕рдПрд╕рдЖрд░ рдПрдкреАрдЖрдИ (рдпрд╛рдиреА getStaticProps / getServerSideProps рд░реВрдЯ рдлрд╛рдЗрд▓реНрд╕ рдореЗрдВ) рдХреЛ Next.js. рдХреЗ рдХреЛрд░ рд╕реЗ рдЕрд▓рдЧ рдХрд┐рдпрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╣рдо @next/core рдореЗрдВ рдмрд╣реБрдд рд╣реА рдореВрд▓ рдХреЛрд░ рднрд╛рдЧреЛрдВ рдХреЛ рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╡рд░реНрддрдорд╛рди рд░рд╛рдп рд╡рд╛рд▓реЗ рд░рд╛рдЙрдЯрд░ рдФрд░ get*Props API рдХреЛ @next/router рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕рд╛рджрдЧреА рдФрд░ рдкрд╢реНрдЪрдЧрд╛рдореА рдЕрдиреБрдХреВрд▓рддрд╛ рдХреЗ рд▓рд┐рдП next рдПрдХ рдврд╛рдВрдЪрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ @next/core рдкреБрдирдГ рдирд┐рд░реНрдпрд╛рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╡рд░реНрд╕реЗрд▓ рдХреЗ рдкрд╕рдВрджреАрджрд╛ рд░рд╛рдЙрдЯрд░ рдХреЗ рд╕рд╛рде рдкреВрд░реНрд╡-рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рд╣реЛрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рддрдм рд╕рдореБрджрд╛рдп рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЯреНрд░реЗрдб-рдСрдл рдХреЗ рд╕рд╛рде рд░рд╛рдЙрдЯрд░ рдФрд░ рдПрд╕рдПрд╕рдЖрд░ / рдПрд╕рдПрд╕рдЬреА рдПрдкреАрдЖрдИ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛, рдЬреЛ рдЙрди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рд╣реИрдВ рдЬреЛ рдЕрдиреНрдпрдерд╛ рдмрд╛рдердЯрдм рдХреЗ рд╕рд╛рде рдиреЗрдХреНрд╕реНрдЯ.рдЬреЗрдПрд╕ рдХреЗ рдЕрдЪреНрдЫреЗ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рдмрд╛рд╣рд░ рдлреЗрдВрдХ рджреЗрдВрдЧреЗред

Next.js рдХреЛрд░ рдХреНрдпрд╛ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░реВрдЯрд░ рдкреНрд▓рдЧрдЗрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдкрд░ рдХреБрдЫ рд╡рд┐рдЪрд╛рд░:

  • рдЕрдиреБрд░реЛрдз {url, body, рдЖрджрд┐} рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП рдХреЛрд░ рд░рд╛рдЙрдЯрд░ рдкреНрд▓рдЧрдЗрди рд╕реЗ рдЗрд╕ рдЕрдиреБрд░реЛрдз рдХреЛ рдПрдХ рджрд╕реНрддрд╛рд╡реЗрдЬ (рд╕реНрдЯреНрд░рд┐рдВрдЧ рдпрд╛ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ) рдХреЗ рд▓рд┐рдП рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдпрд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ (рдпрд╛рдиреА 404 рдпрд╛ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ) рдХреЛ рдлреЗрдВрдХрдиреЗ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░реЗрдЧрд╛ред
  • рдирд┐рд░реНрдпрд╛рдд рдкрд░ рдХреЛрд░ рд░рд╛рдЙрдЯрд░ рдкреНрд▓рдЧрдЗрди рдХреЛ рдЙрди рдкреГрд╖реНрдареЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░реЗрдЧрд╛, рдЬрд┐рдиреНрд╣реЗрдВ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

@next/router рд╢рд╛рдпрдж рдЬреИрд╕реЗ рдХрд╛рдо рдХрд░рдХреЗ рдПрдкреАрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдорд╛рди рдкреИрдЯрд░реНрди рд▓рд╛рдЧреВ рдХрд░реЗрдВрдЧреЗ:

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

рдореИрдВ рд╢рд╛рдпрдж рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдПрдХ рд░рд╛рдЙрдЯрд░ рдкреНрд▓рдЧрдЗрди рдХреЗ рд╕рд╛рде @apollo/react-ssr react-ssr-prepass react@experimental react-ssr-prepass @apollo/react-ssr рдФрд░ рд╕рд╣рд╛рдпрддрд╛ рд╕реЗ рдЪрд▓рд╛рдХрд░ рджреЗрдЦ рд╕рдХрддрд╛ рдерд╛ред рдЬреЛ рдПрд╕рдПрд╕рдЖрд░-рдУрдирд▓реА рд░реВрдЯреНрд╕ рдХреЛ рдЖрдЗрд╕реЛрдореЙрд░реНрдлрд┐рдХ рдПрд╕рдПрд╕рдЖрд░ рдорд╛рд░реНрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ get*Props рд╢реИрд▓реА рдПрдкреАрдЖрдИ рдХреЛ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ SSR / SSG рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред

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

рдорд╛рд░реНрдЧ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП /foo/[...slug] ,

function FooPage() {

  return (
      <Switch>
          <Route path="/foo/bar">
              <SomeResource />
              <Route path={`${parenthPath}/baz`} component={SomeSubResource} />
          </Route>
          .... more routes
      </Switch>
  )
}

рдХреЗ рд╕рд╛рде рдкреВрд░реНрд╡-рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ,

export async function getStaticPaths() {

  return {
    paths: [
      { slug: [ 'bar' ] },
      { slug: [ 'bar', 'baz' ] },
    ],
  }
}

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

@ avin-kavish рдореБрдЦреНрдп рдореБрджреНрджрд╛ рдпрд╣ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ: Next.js рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкрд░ рдкреНрд░рддреНрдпреЗрдХ рдкреГрд╖реНрда рдХрд╛ рдЕрдкрдирд╛ рдмрдВрдбрд▓ рд╣реИ рдФрд░ рдЧрддрд┐ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рд╣реИред

рдпрджрд┐ рдЖрдкрдиреЗ рдПрдХ рд╣реА рдкреГрд╖реНрда рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реА рд╕рд╛рдордЧреНрд░реА / рдЙрдк-рд╕рд╛рдордЧреНрд░реА рдЬреЛрдбрд╝рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рд╣реИ, рддреЛ рдЖрдк рдЕрдВрдд рдореЗрдВ рдПрдХ рдмрд╣реБрдд рдмрдбрд╝реА рдмрдВрдбрд▓ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ (рдЬреЛ рдХрд┐ рдкреНрд░рддрд┐ рд╕реЗ "рднрдпрд╛рдирдХ" рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдмрд╕ рдкрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рд╡реНрдпрд╛рдкрд╛рд░ рдЧрдд)ред рдЖрдк next/dynamic рд╕реЛрдЪрд╛ :) рдХреЗ рд╕рд╛рде рдХреБрдЫ рдореИрдиреБрдЕрд▓ рдЕрдиреБрдХреВрд▓рди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ :)

@ рдЖрдЙрдЪ рдПрдХрдорд╛рддреНрд░ рдЖрдпрд╛рдо рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЕрдЧрд▓рд╛ рд░рд╛рдЙрдЯрд░ рдЕрдЪреНрдЫрд╛ рд╣реИ рдпрд╛ рдмреБрд░рд╛ред рдПрдХ рдФрд░ рдмрд╣реБрдд рд╣реА рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЪреАрдЬрд╝ рд╣реИред рдЕрдЧрд▓реА рдФрд░ рдЬреЗ.рдЬреЗ. рдФрд░ рд╕рд╛рдореБрджрд╛рдпрд┐рдХ рд╕рд╣рд╛рдпрддрд╛ рд╕реЗ рдорд╛рдЗрдЧреНрд░реЗрд╢рди, рдФрд░ https://github.com/vercel/next.js/issues/1632#issuecomment -633310614 рдЗрд╕реЗ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд░рдЦреЗрдВред Next.js рдЗрд╕ рддрд░рд╣ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рд╣реИ рдХрд┐ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдмреЙрдпрд▓рд░рдкреНрд▓реЗрдЯ рдХреЛ рдЙрдЪреНрдЪ-рдЧреБрдгрд╡рддреНрддрд╛ рд╡рд╛рд▓реЗ рдПрд╕рдПрд╕рдЖрд░ рдРрдк рдХреА рдЬрд░реВрд░рдд рд╣реИ, рдФрд░ рдЬреИрд╕реЗ рдХрд┐ рдпрд╣ рдХрдИ рд╡реЗрдм рдРрдк рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╣реА рдЖрдордВрддреНрд░рд┐рдд рдорд╛рдЗрдЧреНрд░реЗрд╢рди рд▓рдХреНрд╖реНрдп рд╣реИред рдЕрднреА рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдЕрдЧрд▓реЗ рд░реВрдЯ рдореЗрдВ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд░рд╛рдЙрдЯрд┐рдВрдЧ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдФрд░ рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рддреЛ рдЗрд╕рдореЗрдВ рд╕реЗ рдмрд╛рд╣рд░ред

@Dantman рджреНрд╡рд╛рд░рд╛ рдкрд╣рд▓реЗ рд╕реБрдЭрд╛рдИ рдЧрдИ

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

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

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

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

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

рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рдпрд╣ рдХреЗрд╡рд▓ рддрднреА рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИ рдЬрдм рдЖрдк рдПрд╕рдПрд╕рдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реЛрдВ рдФрд░ рдЧреИрд░-рдЧрддрд┐рд╢реАрд▓ рдорд╛рд░реНрдЧреЛрдВ рдХрд╛ рдПрдХ рд╕рдореВрд╣ рд╣реЛред рдпрджрд┐ рдЖрдкрдХреЗ рд╕рднреА рдорд╛рд░реНрдЧ SSG рдпрд╛ рдХреЗрд╡рд▓ рдХреНрд▓рд╛рдЗрдВрдЯ рд╣реИрдВ, рддреЛ рдпрд╣ рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рд╣реИред рдФрд░ рдпрджрд┐ рдЖрдкрдХреЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдорд╛рд░реНрдЧ рдЧрддрд┐рд╢реАрд▓ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ getStaticPaths рд╡реИрд╕реЗ рднреА рдЙрдиреНрд╣реЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдШреЛрд╖рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЬреЛ рдХрд╛рдо рдХрд╛ рдПрдХ рд╣реА рд░рд╛рд╢рд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдХрд╛рд▓реНрдкрдирд┐рдХ Next.js рдкреНрд▓рдЧрдЗрди рдореЗрдВ рдорд╛рд░реНрдЧреЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдмрд┐рдирд╛ рд╕рдВрд╢реЛрдзрди рдХреЗ рдХрдЪреНрдЪреЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рд░рд╛рдЙрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рд╕реНрдереИрддрд┐рдХ рдорд╛рд░реНрдЧреЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реИред

рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдлрд╛рдпрджрд╛ рд╣реИ, рдФрд░ рдХреБрдЫ рдЯреАрдореЗрдВ рдпрд╣реА рдЪрд╛рд╣рддреА рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐ рдпрд╣ рд╕рдВрднрд╛рд╡рд┐рдд Next.js рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХрд╛ рдХреЗрд╡рд▓ рдПрдХ рдЙрдк-рд╕рдореВрд╣ рд╣реИред рдРрд╕реЗ рдЕрдиреНрдп рд╕рдореВрд╣ рд╣реИрдВ рдЬреЛ рдЖрд░рдЖрд░ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рд░реВрдЯрд┐рдВрдЧ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХреБрдЫ рдлрд╛рдпрджреЗ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рд╕реНрдерд┐рд░ рдорд╛рд░реНрдЧреЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдПрдХ рд╕реНрд╡реАрдХрд╛рд░реНрдп рдЯреНрд░реЗрдбрдСрдл рдпрд╛ рдПрдХ рдЧреИрд░-рдореБрджреНрджрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореЗрд░реА рдкрд┐рдЫрд▓реА рдХреБрдЫ рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рдмреА 2 рдмреА / рдмреА 2 рд╕реА рдРрдк рдХреА рддрд░рд╣ рд░рд╣реА рд╣реИрдВ, рдЬрд╣рд╛рдВ 100% рдЪреАрдЬреЗрдВ рдПрдХ рд▓реЙрдЧрд┐рди рдкреГрд╖реНрда рдХреЗ рдкреАрдЫреЗ рд╣реЛрддреА рд╣реИрдВ рдФрд░ рдЗрд╕рдХрд╛ рдХреЛрдИ рднреА рдмрд┐рдВрджреБ рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рд░реВрдк рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред Next.js CRA рдкрд░ рдХреБрдЫ рдлрд╛рдпрджреЗ рд╣реИрдВ рдЬреЛ Next.js рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рддреЗ рд╣реИрдВ; рд▓реЗрдХрд┐рди рд░рд╛рдЙрдЯрд░ рдЬреИрд╕реА рдЪреАрдЬреЗрдВ рдмрдбрд╝реЗ рд▓рд╛рд▓ рдЭрдВрдбреЗ рдереЗ рдФрд░ рд╣рдо рд╕рд┐рд░реНрдл рд╕реАрдЖрд░рдП рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд░рд╣реЗред рдХрдЪреНрдЪреЗ рд░рд┐рдПрдХреНрдЯрд░-рд░рд╛рдЙрдЯрд░ рдХреЗ рд╕рд╛рде рдиреЗрдХреНрд╕реНрдЯ.рдЬреЗрдПрд╕ рдХреЗ рд▓рд┐рдП рд╡реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрд╣реБрдд рдЕрдЪреНрдЫреЗ рдереЗред

рдпрд╣ рднреА рдорд╛рдирддрд╛ рд╣реИ рдХрд┐ рд╣рд░ рдХреЛрдИ рдЬреЛ next/router рдЪрд╛рд╣рддрд╛ рд╣реИ, рд╡рд╣ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рд░рд╛рдЙрдЯрд░ рдХреЗ JSX рдлреЙрд░реНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред рдпрд╣ next/router рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдПрдХрдорд╛рддреНрд░ рдкреНрд░рдХрд╛рд░ рдирд╣реАрдВ рд╣реИред

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

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

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

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

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

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

рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдкреН

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

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

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

рд░рд╛рдЙрдЯрд░ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдЗрд╕ рддрд░рд╣ рдХреЗ рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╢рд╛рдирджрд╛рд░ рдЬрдЧрд╣ рд╣реЛрдЧреАред рдЬрдм рддрдХ рдкреНрд▓рдЧрдЗрди рдПрдкреАрдЖрдИ рдирд┐рдореНрди рд╕реНрддрд░ рдХрд╛ рд╣реИ, рддрдм рддрдХ рдпрд╣ рдХреЗрд╡рд▓ next/router рдкреНрд▓рдЧрдЗрди рдХреЛ рдХрд╛рдВрдЯрд╛ рдХрд░рдиреЗ рдФрд░ рдЙрд╕ рд░рд╛рдЙрдЯрд░ рдХреЗ рдПрдХ рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ @ рд╕рд╕реНрдкреЗрдВрд╕ + рдЖрдзрд╛рд░рд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдЧрд╛ред рдФрд░ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рдкреНрд▓рдЧрдЗрди рд╣реИ (Next.js рдХреЗ рд╕рднреА рдХрд╛ рдПрдХ рдХрд╛рдВрдЯрд╛ рдирд╣реАрдВ), рдирдП рд╕рд╕реНрдкреЗрдВрд╕ рдЖрдзрд╛рд░рд┐рдд рд░рд╛рдЙрдЯрд░ рдХрд╛ рдкреНрд░рдпреЛрдЧ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ред рдпрд╣ рдЕрдм рдмрдЬрд╛рдп рдмрд╛рдж рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рддрд░рд╣ рдХрд╛ рдкреНрд░рдпреЛрдЧ рд╣реИ рдХреНрдпреЛрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ @ рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рдореМрдЬреВрдж рд╣реИ, рдЕрд╕рд▓реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

@dantman рдореИрдВ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдХрд╣реА рдЧрдИ рдХрд┐рд╕реА рднреА рдмрд╛рдд рд╕реЗ рдЕрд╕рд╣рдордд рдирд╣реАрдВ рд╣реВрдВред рдпрд╣ _is_ рд╕рднреА рдЯреНрд░реЗрдб-рдСрдл рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИред рд╕рдмрд╕реЗ рдмрдбрд╝рд╛ рд╡реНрдпрд╛рдкрд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рдЕрдЧрд▓реА рдЯреАрдо рдЕрдкрдирд╛ рд╕рдордп рдХрд┐рд╕ рдкрд░ рд╡реНрдпрддреАрдд рдХрд░рддреА рд╣реИред рдЕрдм рддрдХ, рдХрдо-рд╡рд┐рдиреНрдпрд╛рд╕ рдЙрдЪреНрдЪ-рдкреНрд░рджрд░реНрд╢рди рдПрд╕рдПрд╕рдЖрд░ рдЙрдирдХрд╛ рдореБрдЦреНрдп рдлреЛрдХрд╕ рд░рд╣рд╛ рд╣реИред рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЬрд░реВрд░реА рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд╣ рдХреЛрдг рд╣реИ рдЬрд┐рд╕реЗ рд╢реБрд░реВ рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ (рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рд╣рдо рдЙрдиреНрд╣реЗрдВ рдХрд╛рдо рдкрд░ рдЪреБрдирддреЗ рд╣реИрдВ)ред рд╡реЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ SSG рдореЗрдВ рдЕрдзрд┐рдХ рдЦреЛрдж рдЪреБрдХреЗ рд╣реИрдВ, Gatsby рдФрд░ Jamstack рдХреА рд▓реЛрдХрдкреНрд░рд┐рдпрддрд╛ рдХреЗ рдХрд╛рд░рдг рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡реЗ рдЕрднреА рднреА SSR imo рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рд╣реИрдВред

рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рдХрд┐ рдЕрдЧрд░ рдЖрдк рдПрд╕рдПрд╕рдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЧреИрд░-рдЧрддрд┐рд╢реАрд▓ рдорд╛рд░реНрдЧреЛрдВ рдХрд╛ рдПрдХ рд╕рдореВрд╣ рд╣реИ рддреЛ рд╣реА рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИ

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

рд╣рдордореЗрдВ рд╕реЗ рдХреБрдЫ рдЦреБрдж рдХреЛ рдХреЛрдб-рд╡рд┐рднрд╛рдЬрди рдХрд░рдиреЗ рд╕реЗ рдареАрдХ рдХрд░ рд░рд╣реЗ рд╣реИрдВ

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

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

рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рдХрд┐ рдЕрдЧрд░ рдЖрдк рдПрд╕рдПрд╕рдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЧреИрд░-рдЧрддрд┐рд╢реАрд▓ рдорд╛рд░реНрдЧреЛрдВ рдХрд╛ рдПрдХ рд╕рдореВрд╣ рд╣реИ рддреЛ рд╣реА рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИ

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

рд╣рдо рд╢рд╛рдпрдж рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрд╛рд░рдгреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдХреНрдпреЛрдВ рдорд╛рд░реНрдЧреЛрдВ рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреЗ рд▓рд┐рдП рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рд░реВрдк рд╕реЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдпрд╣ рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐ рд╣рдо рджреЛрдиреЛрдВ "рд╕реНрдереИрддрд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг" рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, "рдмрд╕ рдХреЛрдб рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рд╕рдордп рдХреЗ рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рдорд╛рд░реНрдЧреЛрдВ рдХреА рд╕реВрдЪреА (рдЬреИрд╕реЗ ['/about', '/', '/profile'] ) рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛"ред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ рдЬреЗрдПрд╕ рдмрдВрдбрд▓ рдЕрдиреБрдХреВрд▓рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рдЬреЛ рдореБрдЭреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдореЗрдВ рдХреЛрдИ рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рдорд┐рд▓реА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдЗрд╕ рдмрд╛рдд рдХреА рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдк рдЬрд┐рд╕ рд╕реНрдереИрддрд┐рдХ рдорд╛рд░реНрдЧ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд░рд╣реЗ рд╣реИрдВ, рдЙрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЕрдиреБрдХреВрд▓рди рд╣реИред

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

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

рдФрд░ рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ, рдЕрдЧрд░ рдЖрдк рд╕рднреА рд▓реЙрдЧ-рдЗрди рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддреЛ рд╕реАрдПрд╕рдЖрд░-рдУрдирд▓реА рдРрдкреНрд╕ рд╣реИрдВ, рдлрд┐рд░ рдиреЗрдХреНрд╕реНрдЯ _does_ рдореЗрдВ CRA (SSR CSR рдЬрд┐рддрдирд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдХрднреА рдирд╣реАрдВ рд╣реЛрдЧрд╛) рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдбрд╛рдЙрдирд╕рд╛рдЗрдб рд╣реИрдВред

CSR рдРрдкреНрд╕ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ Next.js рдореЗрдВ рдЖрдк рдХреНрдпрд╛ рд╕реЛрдЪ рд░рд╣реЗ рд╣реИрдВ? рдЙрдкрд░реЛрдХреНрдд рд░рд╛рдЙрдЯрд░ рдореБрджреНрджреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛ред

рдореЗрд░реА рд╕рдордЭ рдХреЗ рд▓рд┐рдП Next.js SSR / SSG / CSR рдорд╛рд░реНрдЧреЛрдВ рдХреЗ рдкреВрд░реНрдг рд╕рд░рдЧрдо тАЛтАЛрдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рддреЛ рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрднреА рднреА рд▓реЙрдЧрд┐рди-рджреАрд╡рд╛рд░реЛрдВ рд╡рд╛рд▓реЗ CSR- рдХреЗрд╡рд▓ рдРрдкреНрд╕ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИред

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

рдореЗрд░реЗ рдЕрдиреБрднрд╡ рд╕реЗ CRA рдХреЛ CSR- рдХреЗрд╡рд▓ рдРрдкреНрд╕ рдХреЗ рднреАрддрд░ рднреА рдХрд╛рдлреА рдиреБрдХрд╕рд╛рди рд╣реБрдЖ рд╣реИ рдЬреЛ Next.js рдХреЗ CSR- рдкреЗрдЬ рдХреЛ рдЙрдкрдпреЛрдЧреА рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдмреЗрджрдЦрд▓ рдХрд┐рдП рдмрд┐рдирд╛ рд╡реЗрдмрдкреИрдХ рдХреЙрдиреНрдлрд┐рдЧ рдХрд╕реНрдЯрдорд╛рдЗрдЬреЗрд╢рди рдПрдХ рдмрдбрд╝рд╛ рд╣реИред рдЬрдм рдореБрдЭреЗ рдПрдХ рдРрдк рдореЗрдВ i18n рдЬреЛрдбрд╝ рд░рд╣рд╛ рдерд╛, рддреЛ рдЬрдм рдореИрдВ рдмрд╕ рдЧреНрд▓реЛрдмрд▓рд╛рдЗрдЬрд╝-рдХрдВрдкрд╛рдЗрд▓рд░ рд╡реЗрдмрдкреИрдХ рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛, рддреЛ рдореБрдЭреЗ рдмрд╣реБрдд рджрд░реНрдж рд╣реБрдЖред SSR / SSG рдХреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреГрд╖реНрдареЛрдВ рдХреЗ рд▓рд┐рдП рдСрдкреНрдЯ-рдЗрди рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рднрд▓реЗ рд╣реА рдЕрдзрд┐рдХрд╛рдВрд╢ рдкреГрд╖реНрда CSR рдХрд╛ рд╣реЛ, рдПрдХ рд▓рд╛рдн рднреА рд╣реИ (рдЬреИрд╕реЗ рдХрд┐ рдЖрдкрдХреЗ репреп.реп% рдкреГрд╖реНрда CSR рд╣реИрдВ рдФрд░ рдПрдХ рд▓реЙрдЧрд┐рди рдкреГрд╖реНрда рдХреЗ рдкреАрдЫреЗ; рд▓реЗрдХрд┐рди рдЖрдкрдХреЗ рдкрд╛рд╕ рд▓реИрдВрдбрд┐рдВрдЧ рдкреГрд╖реНрда рдФрд░ рд╢рд╛рдпрдж рд╢рд░реНрддреЗрдВ / рд╕рдВрдкрд░реНрдХ рд╣реИрдВ рд╡реЗ рдкреГрд╖реНрда рдЬреЛ рдЖрдк SSG рдпрд╛ SSR рдЪрд╛рд╣рддреЗ рд╣реИрдВ)ред CRA рдХреА рддрд░рд╣ рд╕рд╛рдорд╛рди рдХреЗ рд╕рд╛рде рдЙрди рдЪреАрдЬреЛрдВ рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред

рд╣рдордореЗрдВ рд╕реЗ рдХреБрдЫ рдЦреБрдж рдХреЛ рдХреЛрдб-рд╡рд┐рднрд╛рдЬрди рдХрд░рдиреЗ рд╕реЗ рдареАрдХ рдХрд░ рд░рд╣реЗ рд╣реИрдВ

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

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

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

рдЬрдм рд╣рдореЗрд╢рд╛ рдиреЗрдХреНрд╕реНрдЯJS рдХреЗ рд╕рд╛рде react-router рдЗрдВрдЯреАрдЧреНрд░реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдЦреЛрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдореИрдВ рд╣рдореЗрд╢рд╛ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдЙрддрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдХрд╕реНрдЯрдо рд╕рд░реНрд╡рд░ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рдЖрдЬрдорд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред

react-router v6 (рдмреАрдЯрд╛) рдХреЗ рд╕рд╛рде, рдПрдХ рдХрд╕реНрдЯрдо _app рдмрдирд╛рдПрдБ

// _app.js || _app.tsx
import * as React from 'react'
import App from 'next/app'
import NextRouter from 'next/router'

export default class CustomApp extends App {
    render() {
        const { Component, pageProps } = this.props

        if (process.browser) {
            const { Router } = require('react-router-dom')
            const { createMemoryHistory } = require('history')
            const history = createMemoryHistory({
                initialEntries: [this.props.router.asPath],
            })

            history.listen(function ({ action, location }) {
                const url = {
                    hash: location.hash,
                    pathname: location.pathname,
                    search: location.search,
                }
                switch (action) {
                    case 'PUSH':
                        return NextRouter.push(url)
                    case 'REPLACE':
                        return NextRouter.replace(url)
                    default:
                        return void 0
                }
            })

            return (
                <Router location={history.location} navigator={history} action={history.action}>
                    <Component {...pageProps} />
                </Router>
            )
        } else {
            const { StaticRouter } = require('react-router-dom/server')
            return (
                <StaticRouter location={this.props.router.asPath}>
                    <Component {...pageProps} />
                </StaticRouter>
            )
        }
    }
}

рдХреНрдпреЛрдВ

NextJS рдореЗрдВ (рдЬреИрд╕реЗ: /foo/[[...bar]].js ) _optional рд╕рднреА рдорд╛рд░реНрдЧреЛрдВ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдкреГрд╖реНрдареЛрдВ рдХреЗ рд▓рд┐рдП react-router рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдЦреЛрдЬ рд░рд╣рд╛ рд╣реВрдВред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреЗ рдкрд╛рд╕ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрд╛рд░рдг рд╣реЛрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдореЗрд░реА рдореБрдЦреНрдп рдЪрд┐рдВрддрд╛ рд╣реИ рдФрд░ react-router рдПрдХ рдЕрдЪреНрдЫрд╛ рдПрдкреАрдЖрдИ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ v6 рдореЗрдВ рдЬреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдмреАрдЯрд╛ рдореЗрдВ рд╣реИред

рдпрд╣ рдХрд╛рдо рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ

рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рдХрд╕реНрдЯрдо рдмрдирд╛рддрд╛ рд╣реИ MemoryRouter рдХреЗ рдмрдЬрд╛рдп рдПрдХ BrowserRouter рддреЛ рд╣рдо рдирд╣реАрдВ NextJS рд░реВрдЯрд░ рдФрд░ NextJS рд░реВрдЯрд░ рд╣реЛрдиреЗ рд╕реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЗрддрд┐рд╣рд╛рд╕ рдЕрдк рдЧрдбрд╝рдмрдбрд╝ рд╣реИред рдпрд╣ PUSH рдФрд░ REPLACE рд▓рд┐рдП рдореЗрдореЛрд░реА рд╣рд┐рд╕реНрдЯреНрд░реА рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХреЛ рд╕реБрдирддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЖрдк рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП react-router рд╣реБрдХ рдпрд╛ Link рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХреЗрдВ рд▓реЗрдХрд┐рди рд╣реБрдб рдХреЗ рдиреАрдЪреЗ, рдпрд╣ рд╣реЛрдЧрд╛ NextJS рд░рд╛рдЙрдЯрд░ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЛ .push рдФрд░ .replace рдХреЙрд▓ рдХрд░рдирд╛ред

NextJS рд░рд╛рдЙрдЯрд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЕрдиреНрдпрдерд╛ рдорд╛рд░реНрдЧ рдкрд░рд┐рд╡рд░реНрддрди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ NextJS get*Props рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдпрд╣ NextJS Link рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ shallow рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рдорд╛рди рдХрд╛рдо рдХрд░реЗрдЧрд╛ред react-router Link рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирдХрд╛рд░рд╛рддреНрдордХ рдкрдХреНрд╖ рдпрд╣ рд╣реИ рдХрд┐ prefetch ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЖрдк рдЕрднреА рднреА NextJS Link рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ react-router рдЕрднреА рднреА рдорд╛рд░реНрдЧ рдкрд░рд┐рд╡рд░реНрддрди рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдЪреНрдЫреА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЕрдм рдЖрдк NextJS dynamic рдФрд░ react-router рдорд╛рд░реНрдЧреЛрдВ рдХрд╛ рд▓рд╛рдн рдЙрдард╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕ рддрд░рд╣ рдХреЗ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

// /foo/[[...bar]].js
import * as React from 'react'
import { Route, Routes } from 'react-router-dom'
import dynamic from 'next/dynamic'

const Home = dynamic(() => import('src/views/Home'))
const About = dynamic(() => import('src/views/About'))
const Navigation = dynamic(() => import('src/views/Navigation'))

export default function Root() {
    return (
        <>
            <Navigation />
            <Routes>
                <Route path="/foo/" element={<Home />} />
                <Route path="/foo/about" element={<About />} />
            </Routes>
        </>
    )
}

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

Next.js 9.5+ рдХреЗ рд╕рд╛рде рд░рд┐рдПрдХреНрдЯ рд░рд╛рдЙрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

рдЖрдкрдХреЛ рдмрд╕ рдЗрддрдирд╛ рдХрд░рдирд╛ Next.js 9.5 рдпрд╛ рдмрд╛рдж рдореЗрдВ рд╕рд╣реА рддрд░реАрдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЗрд╕ рдХреЗ рд╕рд╛рде рд╣реИ рдкреБрдирд░реНрд▓реЗрдЦрдиреЛрдВ ред _ рдПрдХ рдХрд╕реНрдЯрдо рд╕рд░реНрд╡рд░_ рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВ! рдпрд╣рд╛рдБ рдХреИрд╕реЗ рдХрд░реЗрдВ рдЗрд╕ рдкрд░ рд╡рд┐рд╕реНрддреГрдд рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рд╣реИ: https://colinhacks.com/essays/building-a-spa-with-nextjs

рдореВрд▓ рд╡рд┐рдЪрд╛рд░:

  1. рдПрдХ рдХрд╕реНрдЯрдо рдРрдк рдмрдирд╛рдПрдВ ( /pages/_app.tsx )

  2. null рд▓реМрдЯрд╛рдПрдВ рдпрджрд┐ typeof window === "undefined" ред рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рд░рд╛рдЙрдЯрд░ рдХреЛ SSR рдЪрд░рдг рдХреЗ рджреМрд░рд╛рди рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдлреЗрдВрдХрдиреЗ рд╕реЗ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ!

// pages/_app.tsx

import { AppProps } from 'next/app';

function App({ Component, pageProps }: AppProps) {
  return (
    <div suppressHydrationWarning>
      {typeof window === 'undefined' ? null : <Component {...pageProps} />}
    </div>
  );
}

export default App;

suppressHydrationWarning рд╡рд┐рд╢реЗрд╖рддрд╛ рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ рдЬрдм рд╕рд░реНрд╡рд░ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рд╕рд╛рдордЧреНрд░реА рдХреНрд▓рд╛рдЗрдВрдЯ-рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рд╕рд╛рдордЧреНрд░реА рд╕реЗ рдЕрд╕рд╣рдордд рд╣реЛ рдЬрд╛рддреА рд╣реИред

  1. рдореБрдЦрдкреГрд╖реНрда рдХреЗ рд╕рднреА рдорд╛рд░реНрдЧреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦреЗрдВ
// next.config.js

module.exports = {
  async rewrites() {
    return [
      // Rewrite everything else to use `pages/index`
      {
        source: '/:path*',
        destination: '/',
      },
    ];
  },
};

рдлрд┐рд░ рдЖрдк рд╕рд╛рдорд╛рдиреНрдп рдХреА рддрд░рд╣ рд░рд┐рдПрдХреНрдЯ рд░рд╛рдЙрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ! рд▓рд┐рдВрдХ рдХрд┐рдП рдЧрдП рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдВрджрд░реНрдн / рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ рдЖрдкрдХреЛ рдЖрд░рдВрдн рдХрд░ рджреЗрдЧрд╛ред https://vriad.com/essays/building-a-spa-with-nextjs

@colinhacks рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рдпрд╣ рдкреБрд╖реНрдЯрд┐ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рд╕реЛрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдРрдк рдХреЛ рдЕрдкрдиреЗ рдкреЗрдЬ рдкрд░ рд▓реЗ рдЬрд╛рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реЛ, рдЬреИрд╕реЗ app.js рдпрд╛ path.js рдпрд╛ рдХреБрдЫ рдФрд░ред рдлрд┐рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛

// next.config.js

module.exports = {
  async rewrites() {
    return [
      {
        source: '/app/:path*',
        destination: '/app',
      },
    ];
  },
};

рдмрд╕ рдХреБрдЫ рд╕реЛрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХрд╛ рд╕рдорд╛рдзрд╛рди рдореБрдЭреЗ рдорд┐рд▓рд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИред

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

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

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

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

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

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

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