pages/_document.js > components/Document.js
pages/_error.js > components/Error.js
ΠΠΈ ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π²ΡΡΠ΅ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΡ
Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ _ΡΡΡΠ°Π½ΠΈΡΠ°ΠΌΠΈ_ β ΡΡΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ _ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ_. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²ΡΠ΅ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎ Π½Π°Π»ΠΈΡΠΈΠΈ ΠΏΠ°ΠΏΠΊΠΈ components
ΡΡΠ΄ΠΎΠΌ Ρ pages
, Π±ΡΠ»ΠΎ Π±Ρ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π»ΡΡΡΠ΅ ΠΈ Β«ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½Π΅Π΅Β» IMO ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΡ ΠΈΡ
ΡΡΠ΄Π° ΠΈ Π·Π°Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ, ΡΡΠΎ ΡΡΠΎ _Π·Π°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅_ ΠΈΠΌΠ΅Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ. ΠΏΠΎ ΠΠ°Π»Π΅Π΅.
Π― Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΡΡΠΎ Π±ΠΎΠ»Π΅Π΅ Π°ΠΊΠΊΡΡΠ°ΡΠ½ΠΎ ΠΈ ΡΠΏΡΠΎΡΡΠΈΡ Π»ΠΎΠ³ΠΈΠΊΡ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° ΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΈΡΠ°ΡΡ _Π²ΡΠ΅_ ΡΠ°ΠΉΠ»Ρ JS Π² pages
ΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΡΡΠΈΠ»ΡΡΡΠΎΠ²ΡΠ²Π°ΡΡ ΡΡΠΈ ΠΎΡΠΎΠ±ΡΠ΅ ΡΠ»ΡΡΠ°ΠΈ. ΠΡΠΎ ΡΠ°ΠΊΠΆΠ΅ ΡΡΡΡΠ°Π½ΠΈΠ»ΠΎ Π±Ρ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠΎΠ΄Π»ΠΈΠ²ΠΎΠ΅ ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π° Ρ ΠΏΠΎΠ΄ΡΠ΅ΡΠΊΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ... Ρ
ΠΎΡΡ ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΠΎΠ΅ ΠΌΠ½Π΅Π½ΠΈΠ΅!
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ. ΠΡ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΎΡΠΊΠΎ.
ΠΠΎ Π² ΠΊΡΠ°ΡΠΊΠΎΡΡΠΎΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΡΠΏΠ΅ΠΊΡΠΈΠ²Π΅ ΠΌΡ Π½Π΅ ΡΠΎΠ±ΠΈΡΠ°Π΅ΠΌΡΡ Π΅Π³ΠΎ ΠΌΠ΅Π½ΡΡΡ.
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ 2.0.0
ΡΠΊΠΎΡΠΎ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΡΡΠ΅Π½ΠΎ, Ρ ΠΏΠΎΠ΄ΡΠΌΠ°Π», ΡΡΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Ρ
ΠΎΡΠΎΡΠ΅ΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ Π²Π½Π΅ΡΡΠΈ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ ΡΡΠΎΠΌΡ. ΠΠ΅ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ Π²Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ Π΄Π»Ρ ΠΎΠ±ΠΎΠΈΡ
Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΠΈ Π·Π°ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π΄Π»Ρ ΡΠ΅Ρ
, ΠΊΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ pages/_document.js
ΠΈ pages/_error.js
, ΠΏΠΎΡΠΎΠ²Π΅ΡΠΎΠ²Π°Π² ΠΈΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΡ ΠΈ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΠΈ ΡΠ°ΠΉΠ»Ρ? Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΡΠ»ΠΎΠΌΠ°Π΅Ρ, Π½ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π»ΡΠ΄ΡΠΌ ΠΌΠΈΠ³ΡΠΈΡΠΎΠ²Π°ΡΡ.
Π’ΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΠΏΡΠΎΡΠΈΡΠ°Π² ΡΡΠΎΡ PR https://github.com/zeit/next.js/pull/936 , ΡΡΠΎ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΡΠ΅ΡΠΈΡΡ Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ΅ $# next.config.js
0$#$, ΠΊΠ°ΠΊ ΡΡΠΎ Π±ΡΠ»ΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ Ρ pagesDirectory
.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π΅ΡΠ΅ ΠΏΠ°ΡΡ ΡΠ΅ΠΊΠ²ΠΈΠ·ΠΈΡΠΎΠ², ΡΠ°ΠΊΠΈΡ
ΠΊΠ°ΠΊ documentComponent
ΠΈ errorComponent
:
// next.config.js
module.exports = {
pagesDirectory: 'views',
documentComponent: 'components/Document.js',
errorComponent: 'components/Error.js'
}
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
Π’ΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΠΏΡΠΎΡΠΈΡΠ°Π² ΡΡΠΎΡ PR https://github.com/zeit/next.js/pull/936 , ΡΡΠΎ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΡΠ΅ΡΠΈΡΡ Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ΅ $#
next.config.js
0$#$, ΠΊΠ°ΠΊ ΡΡΠΎ Π±ΡΠ»ΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ ΡpagesDirectory
.ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π΅ΡΠ΅ ΠΏΠ°ΡΡ ΡΠ΅ΠΊΠ²ΠΈΠ·ΠΈΡΠΎΠ², ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ
documentComponent
ΠΈerrorComponent
: