⊗jsnxPmImSC 28 of 57 menu

NextJSにおけるサイトルートからのインポート

このレッスンでは、NextJSにおけるインポートについて さらに学んでいきます。しかし今回は、NextJSにはあるが NodeJSにはない機能について学びます。

NodeJSでは、インポート時に相対パス(先頭のスラッシュなし) を使用するか、オペレーティングシステムのルートからの絶対パス (プロジェクトを別のコンピュータに移動する際に問題が生じる) を使用するかのどちらかです。

しかし実際には、プロジェクトのルートからのインポートという もう一つのタイプが必要です。NodeJSにはこのようなインポートは 組み込まれていませんが、NextJSにはあります。

このインポートはNextJSをインストールする際に有効になります。 覚えていますか?あのWould you like to customize the default import aliasという質問がありましたよね? これにYesと答えると、プロジェクトのルートからのインポートを 設定できるようになります。

では、その方法を見てみましょう。 例として、以下のファイル構造があるとします:

  • /src/
    • data.js
    • /app/
      • /test/
        • page.jsx

ご覧の通り、ファイルdata.jsは ファイルpage.jsxから遠く離れた場所にあります。 データファイルをページファイルにインポートしてみましょう。 そのために相対パスを使用します:

import data from '../../data.js'; export default function Test() { return <h1>Test</h1>; }

ご覧の通り、相対パスによるインポートはあまり便利ではありません。 なぜなら、パスを../から始めなければならないからです。 さらに、コンポーネントを別の場所に移動させると、 データファイルへのパスが壊れてしまいます。

プロジェクトのルート(srcフォルダがルートとみなされます) からのファイルへのパスを指定する方がより便利です。 そのためには、パスの先頭に記号@を書く必要があります。 やってみましょう:

import data from '@/data.js'; export default function Test() { return <h1>Test</h1>; }

再度強調しますが、このようなインポートはNextJSで特に可能であり、 インストール時に適切な質問に正しく答えた場合のみ機能します。 NodeJSだけ、または純粋なJavaScriptではこれは機能しません。

以下のファイル構造が与えられています:

  • /src/
    • /app/
      • data.js
      • /test/
        • page.jsx

データファイルをコンポーネントTestに インポートしてください。 インポート時にはプロジェクトのルートからの パスを指定してください。

ファイル構造を以下のように変更してください:

  • /src/
    • /app/
      • data.js
      • /test/
        • /sub/
          • page.jsx

プロジェクトのルートからのインポートが 依然として問題なく機能することを確認してください。

日本語
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItalianoქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
当サイトでは、サイトの動作、分析、パーソナライゼーションのためにクッキーを使用しています。 データ処理はプライバシーポリシーに従って行われます。
すべて受け入れる 設定 拒否