Next.js: рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдЧрд░реАрдм рдЖрджрдореА рдХреЗ рдЖрд░рдИрдПрд╕рдЯреА рдПрдкреАрдЖрдИ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рдпреЛрдЧ рдХрд░реЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 10 рдирд╡ре░ 2016  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: vercel/next.js

рдореИрдВ рдХрдИ рд▓реЛрдЧреЛрдВ рдХреЛ рд╕реНрд▓реИрдХ рдкрд░ рдФрд░ рд╡рд┐рднрд┐рдиреНрди рдЧрд┐рдЯрд╣рдм рдореБрджреНрджреЛрдВ рдореЗрдВ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдмреИрдХрдПрдВрдб рд╕рдорд╛рдзрд╛рди рдорд╛рдВрдЧрддреЗ рд╣реБрдП рджреЗрдЦрддрд╛ рд╣реВрдВред рдЬрдмрдХрд┐ рдореИрдВ @rauchg рдХреА рдШреЛрд╖рдгрд╛ рдХреЗ рд╕рд╛рде рд╕рд╣рд╛рдиреБрднреВрддрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ "рдбреЗрдЯрд╛ рд▓рд╛рдиреЗ рдХрд╛ рдХрд╛рдо рдбреЗрд╡рд▓рдкрд░ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИ", рдПрдХ рдмреБрдирд┐рдпрд╛рджреА рд╕рдорд╛рдзрд╛рди рд╣реИ рдЬреЛ рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рдХреЛ next.js рдХреЗ рд╕рд╛рде рд╢реБрд░реБрдЖрдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ, рдЕрдХреЗрд▓реЗ рд╕реЛрдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реЛрдЧрд╛ред "рдПрдкреАрдЖрдИ рдХреЗ рд░реВрдк рдореЗрдВ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо" рдХреЗ рдЕрджреНрднреБрдд рд╡рд┐рдЪрд╛рд░ рдХреЗ рдПрдХ рд╕рд░рд▓ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рд╕рд╛рде, рд╣рдо .json рдлрд╛рдЗрд▓реЛрдВ рд╡рд╛рд▓рд╛ рдПрдХ рдПрдкреАрдЖрдИ / рдлрд╝реЛрд▓реНрдбрд░ рдкреЗрд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рддрдм рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ JSON REST API рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд╛рдордиреЗ рдЖ рдЬрд╛рдПрдЧрд╛ред

рдЗрд╕ рдкреНрд░рдХрд╛рд░ /api/posts.json рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ GET рд╕рдВрдЧреНрд░рд╣ рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ http://example.com/api/posts/ рдмрдирд╛рдПрдЧрд╛ http://example.com/api/posts/123/ рдпрд╛ http:// рдлрд╝реЙрд░реНрдо рдХреЗ GET рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдВрдЧреЗред

рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХрд░реНрддрд╛ рдХреА рдУрд░ рд╕реЗ рдЬрдЯрд┐рд▓рддрд╛ рдХреА рднреВрдЦ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ (рдпрд╛рдиреА @nkzawa рдФрд░ рдмрд╛рдХреА

рдпрд╣ next.js рдХреЛ рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рди-рд╕реНрдЯреЙрдк рдлреБрд▓-рд╕реНрдЯреИрдХ рд╡реЗрдмрджреЗрд╡ рд╕рдорд╛рдзрд╛рди рдмрдирдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛, рдФрд░ рдПрдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдЗрдХреНрд░реЛ, рдПрдХреНрд╕рдкреНрд░реЗрд╕, рдХреЛрдЖ / рдХреЛрдЖ 2, рд╣реИрдкреА рдпрд╛ рдлреЗрджрд░рдЬреЗрдПрд╕ рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдХреЛ рдЪреБрдирдиреЗ рдФрд░ рд╕реАрдЦрдиреЗ рдХреЗ рд╕рдВрдЬреНрдЮрд╛рдирд╛рддреНрдордХ рдЕрдзрд┐рднрд╛рд░ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░реЗрдЧрд╛ред рдПрдкреАрдЖрдИ рд╕реНрд╡рдпрдВ (рдпрд╣ рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐ рд╣рдо рдмреИрдХрдПрдВрдб рдХреЗ рд▓рд┐рдП рдиреЛрдб.рдЬреЗрдПрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ), рдпрд╛ рдХреБрдЫ рдмреИрдХрдПрдВрдб-рдП-рдП-рд╕рд░реНрд╡рд┐рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕реАрдЦрдирд╛ рдФрд░ рд╕реАрдЦрдирд╛ рдЬреИрд╕реЗ рдХрд┐ рд░реЗрдерд┐рдВрдХрдбреАрдмреА + рд╣реЛрд░рд╛рдЗрдЬрди, рдлрд╛рдпрд░рдмреЗрд╕, рдкрд╛рд░реНрд╕, рдЧреНрд░рд╛рдл.рдХреВрд▓ рдпрд╛ рдХреБрдЫ рдЕрдиреНрдп рдбреЗрдЯрд╛рдмреЗрд╕ рдПрдХ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рддреЗ рд╣реИрдВ JSON REST API рдпрд╛ GraphQL APIред рдЗрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрд╛рджрди рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдмреЗрд╣рддрд░ рд╡рд┐рдХрд▓реНрдк рд╣реЛрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдПрдХ рдмрд╛рд░ рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдлрд╝рд╛рдЗрд▓-рдЖрдзрд╛рд░рд┐рдд JSON REST API рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рд╡реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рд╕реНрд╡-рдирд┐рд░реНрдорд┐рдд API рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рддреГрддреАрдп рдкрдХреНрд╖ рдореЗрдВ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗред

рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдШрдЯрдХ рдПрдкреАрдЖрдИ рдХреЗ рд▓рд┐рдП @rauchg рдХреЗ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЗ рд╕рд╛рде рд╕рдордиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рд╡рд┐рд╡рд░рдг рдпрд╣рд╛рдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: #149ред

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

рдореБрдЭреЗ рдЙрд▓реНрдХрд╛ рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдЕрдиреБрднрд╡ рд╣реИред рдлреБрд▓ рд╕реНрдЯреИрдХ рдлреНрд░реЗрдорд╡рд░реНрдХ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╣реИрдВред рд╣рдо рдЗрд╕реЗ рдХрдард┐рди рддрд░реАрдХреЗ рд╕реЗ рд╕реАрдЦрддреЗ рд╣реИрдВред

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

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░рд╛ рдзреНрдпрд╛рди рдЗрд╕ рдкрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреИрд╕рд╛ рдХрд┐ рдиреЗрдХреНрд╕реНрдЯ рдХреЗ рд╡рд┐рд╡рд░рдг рдореЗрдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

рд╕рд░реНрд╡рд░-рд░реЗрдВрдбрд░ рдХрд┐рдП рдЧрдП рд░рд┐рдПрдХреНрдЯ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдиреНрдпреВрдирддрдо рдврд╛рдВрдЪрд╛

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

рдореБрдЭреЗ рдЙрд▓реНрдХрд╛ рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдЕрдиреБрднрд╡ рд╣реИред рдлреБрд▓ рд╕реНрдЯреИрдХ рдлреНрд░реЗрдорд╡рд░реНрдХ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╣реИрдВред рд╣рдо рдЗрд╕реЗ рдХрдард┐рди рддрд░реАрдХреЗ рд╕реЗ рд╕реАрдЦрддреЗ рд╣реИрдВред

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

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░рд╛ рдзреНрдпрд╛рди рдЗрд╕ рдкрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреИрд╕рд╛ рдХрд┐ рдиреЗрдХреНрд╕реНрдЯ рдХреЗ рд╡рд┐рд╡рд░рдг рдореЗрдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

рд╕рд░реНрд╡рд░-рд░реЗрдВрдбрд░ рдХрд┐рдП рдЧрдП рд░рд┐рдПрдХреНрдЯ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдиреНрдпреВрдирддрдо рдврд╛рдВрдЪрд╛

рдореИрдВ рдЖрдкрддреНрддрд┐ рдХреЛ рд╕рдордЭрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рд╕рдВрдЬреНрдЮрд╛рдирд╛рддреНрдордХ рдЕрдзрд┐рднрд╛рд░ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛ рд╣реИ, рдФрд░ рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рдкрд╕рдВрдж рд╕реЗ рдкрдВрдЧреБ рд╣реИрдВред рдиреЛрдб.рдЬреЗрдПрд╕ рдХреЗ рдирдП рд▓реЛрдЧ JSON REST API рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдвреЗрд░ рд╕рд╛рд░реЗ рд╡рд┐рдХрд▓реНрдкреЛрдВ рд╕реЗ рдЪрдХрд┐рдд рд╣реИрдВред next.js рдореЗрдВ рдХреБрдЫ рдиреНрдпреВрдирддрдо рд╣реЛрдиреЗ рд╕реЗ рдмрд╣реБрдд рд╕реЗ рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧ рддреБрд░рдВрдд next.js рдХреЛ рдлреБрд▓рд╕реНрдЯреИрдХ рдХреА рдПрдХ рдирдИ рдирд╕реНрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрдВрдЧреЗ (рдЗрд╕ рдЕрд░реНрде рдореЗрдВ рдХрд┐ рдпрд╣ рдмреИрдХрдПрдВрдб рдФрд░ рдлреНрд░рдВрдЯрдПрдВрдб рджреЛрдиреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдореИрдХреНрд╕рд┐рдордорд┐рд╕реНрдЯ рдЕрд░реНрде рдореЗрдВ рдирд╣реАрдВ) рдпреВрдирд┐рд╡рд░реНрд╕рд▓ рд░рд┐рдПрдХреНрдЯ рд╡реЗрдмрджреЗрд╡ рдЯреВрд▓ рдИрд╕реАрдПрдордПрд╕реНрдХреНрд░рд┐рдкреНрдЯ 6 рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдкрдирд╛рдПрдВред

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

рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЖрдХрд░реНрд╖рдХ рд╣реИ рдЬрдм рдЖрдк рд╕рдордЭрддреЗ рд╣реИрдВ рдХрд┐ next.js рдиреЗ рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдПрдХ рддрдВрддреНрд░рд┐рдХрд╛ рдХреЛ рдорд╛рд░рд╛ рд╣реИ рдЬреЛ рд╕реВрдХреНрд╖реНрдо рдирд╣реАрдВ рд╣реИред рд╕рдВрдЦреНрдпрд╛ рдЭреВрда рдирд╣реАрдВ рд╣реИ: рдЗрд╕рдХреЗ рд░рд┐рд▓реАрдЬ рд╣реЛрдиреЗ рдХреЗ 2 рд╕рдкреНрддрд╛рд╣ рд╕реЗ рднреА рдХрдо рд╕рдордп рдореЗрдВ, next.js рдиреЗ 241 рдореБрджреНрджреЛрдВ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдЧрд┐рдЯрд╣рдм рдкрд░ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдЦреАрдВрдЪ рд▓рд┐рдпрд╛ рд╣реИред рдЙрди рдирдВрдмрд░реЛрдВ рдХреА рддреБрд▓рдирд╛ рдорд╛рдЗрдХреНрд░реЛ рд╕реЗ рдХрд░реЗрдВ: 73 рдореБрджреНрджреЗ рдФрд░ рдкреБрд▓ рдЕрдиреБрд░реЛрдз (рдФрд░ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХреЛрдИ рднреА рдирд╣реАрдВ рдЦреБрд▓рд╛), рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдЬрд┐рд╕рдХреА рдкрд╣рд▓реА рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рд▓рдЧрднрдЧ рджреЛ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдмрдирд╛рдИ рдЧрдИ рдереАред

рдиреНрдпреВрдирддрдо node.js рд╡реЗрдм рдврд╛рдВрдЪреЗ рдХреА рджреБрдирд┐рдпрд╛ рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдПрдХ рдмрдбрд╝рд╛ рд╢реВрдиреНрдп рд╣реИред рдПрдХреНрд╕рдкреНрд░реЗрд╕, рдХреЛрдЖ, рдХреЛрдЖ 2, рд╣рд╛рдкреА, рдлреЗрджрд░рдЬреЗрдПрд╕ рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдИрдПрд╕ 6, рд░рд┐рдПрдХреНрдЯ, рдпреВрдирд┐рд╡рд░реНрд╕рд▓ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдФрд░ рд╕рд╣рдЬ рд░реВрдЯрд┐рдВрдЧ рдХреЛ рдЕрдЧрд▓реЗ рддрд░реАрдХреЗ рд╕реЗ рд╕реНрд╡реАрдХрд╛рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЬреЗрдПрд╕ рдЗрд╕реЗ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд╣рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдПрдХреНрд╕рдкреНрд░реЗрд╕ рд╡рд┐рдХрд╛рд╕ рдореГрдд рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдХреЛрдЖ рдХреЛрдЖ 2 рдореЗрдВ рд╕рдВрдХреНрд░рдордг рдореЗрдВ рдлрдВрд╕ рдЧрдпрд╛ рд╣реИ рдФрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рдкреНрд░рддрд┐рдмрджреНрдз рдЧреНрд░рд╛рдл рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП рдмрд╣реБрдд рдЕрдзрд┐рдХ рдбреЗрд╡рд▓рдкрд░ рдКрд░реНрдЬрд╛ рдЙрддреНрдкрдиреНрди рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдлреЗрджрд░рдЬреЗрдПрд╕ рдПрдХреНрд╕рдкреНрд░реЗрд╕ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдХреЛрдЖ рдХреЗ рдХрджрдо рд╕реЗ рдХреЗрд╡рд▓ рдХреЛрдЖ рдХреА рдЕрдкрдиреА рд╕рдорд╕реНрдпрд╛рдПрдВ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реЗрдВрдЧреАред рдпрд╣ рд╣рд╛рдкреА рдХреЛ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ, рдЬреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЕрдзрд┐рдХ рдЙрджреНрдпрдорд╢реАрд▓ рд╡реЗрдм рдРрдкреНрд╕ рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИ, рдФрд░ рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдореИрдВ рджреЗрдЦ рд╕рдХрддрд╛ рдерд╛ рдХрд┐ рдЕрднреА рднреА ES6 рдХреЛ рдЧрд▓реЗ рдирд╣реАрдВ рд▓рдЧрд╛рдпрд╛ рд╣реИ, рдЕрдХреЗрд▓реЗ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рд╕рд╛рджреЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВред

next.js рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрдбрд╝рд╛ рдмрдирдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд╡рд╕рд░ рдХреА рдПрдХ рдЦрд┐рдбрд╝рдХреА рд╣реИред рдореИрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕реЗ рдбреЗрд╡рд▓рдкрд░ рдЕрдкреАрд▓ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдлреЗрд╕рдмреБрдХ рдХреЗ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдХреНрд░рд┐рдПрдЯ-рд░рд┐рдПрдХреНрд╢рди-рдРрдк рдХреЛ рдЕрдкрдиреЗ рдкреИрд╕реЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд░рди рджреЗ рд░рд╣рд╛ рд╣реВрдВред

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

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

рдореИрдВ @arunoda рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕рд╣рдордд рд╣реВрдВред Next.js рдХреА рд╕рдмрд╕реЗ рдмрдбрд╝реА _feature_ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ _not a backend_ рд╣реИред рдпрд╣ @getify _middle-end_ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдХрд░реАрдм рд╣реИред рдПрдХ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдкреНрд░рддрд┐рдкрд╛рджрди рджреГрд╢реНрдпрдкрдЯрд▓ред

рдЗрд╕рдХреЗ рд╕рд╛рде рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдпрд╣ рд╣реИ рдХрд┐ getInitialProps рдореЗрдВ Next.js _queries_ рдбреЗрдЯрд╛ рд╕реЗрд╡рд╛рдПрдВред REST рдорд╛рдЗрдХреНрд░реЛ-рд╕рд░реНрд╡рд┐рд╕реЗрдЬ, APIs рдФрд░ GraphQL рдЗрд╕ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рдмреЗрд╣рддрд░реАрди рдкреВрд░рдХ рд╣реИрдВред

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

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

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

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

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

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

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

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