Next.js: Verschieben Sie pages/_component.js nach components/Component.js

Erstellt am 17. März 2017  ·  3Kommentare  ·  Quelle: vercel/next.js

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

Keine der oben genannten Seiten sind _Seiten_ – sie sind spezielle _Komponenten_. Da jeder die Konvention annimmt, einen components Ordner neben pages zu haben, wäre es meiner Meinung nach viel schöner und "korrekter", sie hierher zu verschieben und zu dokumentieren, dass dies _reservierte_ Komponentennamen sind, die verwendet werden von Next.

Ich denke, das ist sowohl ordentlicher als auch vereinfacht Ihre Code-Splitting- und Bündelungslogik, da Sie _alle_ JS-Dateien in pages lesen können und diese Sonderfälle nicht herausfiltern müssen. Es würde auch den etwas hässlichen Unterstrich mit dem Namen Datei auslöschen ... das ist jedoch nur meine Meinung!

Hilfreichster Kommentar

Nachdem Sie gerade diese PR https://github.com/zeit/next.js/pull/936 gelesen haben, könnte dieser Vorschlag auch im next.config.js -Objekt angegangen werden, genau wie pagesDirectory .

Sie könnten ein paar weitere Requisiten wie documentComponent und errorComponent übergeben:

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

Alle 3 Kommentare

Danke. Sie haben einen gültigen Punkt.
Aber kurzfristig werden wir daran nichts ändern.

Da 2.0.0 bald veröffentlicht wird, dachte ich, es wäre eine gute Gelegenheit, eine bahnbrechende Änderung wie diese einzuführen. Könnten Sie nicht beide Optionen unterstützen und eine Warnung für diejenigen protokollieren, die pages/_document.js und pages/_error.js verwenden, und ihnen raten, ihre Dateien zu verschieben und umzubenennen? Auf diese Weise würde es nichts kaputt machen, aber den Menschen die Migration ermöglichen.

Nachdem Sie gerade diese PR https://github.com/zeit/next.js/pull/936 gelesen haben, könnte dieser Vorschlag auch im next.config.js -Objekt angegangen werden, genau wie pagesDirectory .

Sie könnten ein paar weitere Requisiten wie documentComponent und errorComponent übergeben:

// next.config.js
module.exports = {
  pagesDirectory: 'views',
  documentComponent: 'components/Document.js',
  errorComponent: 'components/Error.js'
}
War diese Seite hilfreich?
0 / 5 - 0 Bewertungen