Next.js: рдкреЗрдЬ/_component.js рдХреЛ рдХрдВрдкреЛрдиреЗрдВрдЯреНрд╕/Component.js рдореЗрдВ рд▓реЗ рдЬрд╛рдПрдВ

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

  • pages/_document.js > components/Document.js
  • pages/_error.js > components/Error.js

рдЙрдкрд░реЛрдХреНрдд рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА _рдкреГрд╖реНрда_ рдирд╣реАрдВ рд╣реИтАФрд╡реЗ рд╡рд┐рд╢реЗрд╖ _рдШрдЯрдХ_ рд╣реИрдВред рдЪреВрдВрдХрд┐ рд╣рд░ рдХреЛрдИ components рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рд╕рд╛рде pages рд░рдЦрдиреЗ рдХреА рдкрд░рдВрдкрд░рд╛ рдХреЛ рдЕрдкрдирд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдФрд░ "рдЕрдзрд┐рдХ рд╕рд╣реА" IMO рд╣реЛрдЧрд╛ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдпрд╣рд╛рдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП рдФрд░ рджрд╕реНрддрд╛рд╡реЗрдЬ рдХрд┐рдпрд╛ рдЬрд╛рдП рдХрд┐ рдпреЗ _reserved_ рдШрдЯрдХ рдирд╛рдо рд╣реИрдВ рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдиреЗрдХреНрд╕реНрдЯ рджреНрд╡рд╛рд░рд╛ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рджреЛрдиреЛрдВ рдиреАрдЯрд░ рд╣реИ рдФрд░ рдЖрдкрдХреЗ рдХреЛрдб рд╡рд┐рднрд╛рдЬрди рдФрд░ рдмрдВрдбрд▓рд┐рдВрдЧ рддрд░реНрдХ рдХреЛ рд╕рд░рд▓ рдХрд░реЗрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЖрдк _all_ JS рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ pages рдореЗрдВ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрди рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЛрдВ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдпрд╣ рдереЛрдбрд╝рд╛ рдмрджрд╕реВрд░рдд рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рдирд╛рдорд┐рдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рднреА рдорд┐рдЯрд╛ рджреЗрдЧрд╛ ... рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╕рд┐рд░реНрдл рдореЗрд░реА рд░рд╛рдп рд╣реИ!

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

рдЗрд╕ рдкреАрдЖрд░ https://github.com/zeit/next.js/pull/936 рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж, рдЗрд╕ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЛ next.config.js рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рднреА рдирд┐рдкрдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреИрд╕реЗ pagesDirectory рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЖрдк documentComponent рдФрд░ errorComponent рдЬреИрд╕реЗ рдХреБрдЫ рдФрд░ рдкреНрд░реЙрдкреНрд╕ рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

// next.config.js
module.exports = {
  pagesDirectory: 'views',
  documentComponent: 'components/Document.js',
  errorComponent: 'components/Error.js'
}

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

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

2.0.0 рдЬрд▓реНрдж рд╣реА рдЬрд╛рд░реА рд╣реЛрдиреЗ рдХреЗ рд╕рд╛рде, рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рдпрд╣ рдЗрд╕ рддрд░рд╣ рдПрдХ рдмреНрд░реЗрдХрд┐рдВрдЧ рдмрджрд▓рд╛рд╡ рдкреЗрд╢ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЕрд╡рд╕рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдХреНрдпрд╛ рдЖрдк рджреЛрдиреЛрдВ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рдереЗ рдФрд░ pages/_document.js рдФрд░ pages/_error.js рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЛ рдЙрдирдХреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдФрд░ рдЙрдирдХрд╛ рдирд╛рдо рдмрджрд▓рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддреЗ рд╣реБрдП рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рд▓реЙрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рдереЗ? рдЗрд╕ рддрд░рд╣ рдпрд╣ рдХреБрдЫ рднреА рдирд╣реАрдВ рддреЛрдбрд╝реЗрдЧрд╛ рд▓реЗрдХрд┐рди рд▓реЛрдЧреЛрдВ рдХреЛ рдкрд▓рд╛рдпрди рдХрд░рдиреЗ рджреЗрдЧрд╛ред

рдЗрд╕ рдкреАрдЖрд░ https://github.com/zeit/next.js/pull/936 рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж, рдЗрд╕ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЛ next.config.js рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рднреА рдирд┐рдкрдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреИрд╕реЗ pagesDirectory рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЖрдк documentComponent рдФрд░ errorComponent рдЬреИрд╕реЗ рдХреБрдЫ рдФрд░ рдкреНрд░реЙрдкреНрд╕ рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

// next.config.js
module.exports = {
  pagesDirectory: 'views',
  documentComponent: 'components/Document.js',
  errorComponent: 'components/Error.js'
}
рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

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

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

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

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

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

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