[解決済み] Reactコンポーネントディレクトリのindex.jsファイルはどのように機能しますか?
質問
私は新しいReactプロジェクトを始めたばかりで、その中で この パターンを使用することにしました。これは基本的に、それぞれのコンポーネントに従ってファイルをグループ化します。
├── actions
│ ├── LaneActions.js
│ └── NoteActions.js
├── components
│ ├── App
│ │ ├── App.jsx
│ │ ├── app.css
│ │ ├── app_test.jsx
│ │ └── index.js
│ ├── Editable
│ │ ├── Editable.jsx
│ │ ├── editable.css
│ │ ├── editable_test.jsx
│ │ └── index.js
...
│ └── index.js
├── constants
│ └── itemTypes.js
├── index.jsx
├── libs
│ ├── alt.js
│ ├── persist.js
│ └── storage.js
├── main.css
└── stores
├── LaneStore.js
└── NoteStore.js
私が混乱しているのは、この場合index.jsがどのように機能するかということです。引用の通りです。
index.jsはコンポーネントのための簡単なエントリーポイントを提供するために存在します。 コンポーネントへの簡単な入り口を提供するためにあります。たとえノイズを追加したとしても、インポートを簡素化します。
この記事でやっていないことは、何が
内部
が何であるかを深く掘り下げて説明することです。Editable コンポーネントの場合、どのようなものが
Editable.jsx
と
index.js
はどのように見えるのが理想的でしょうか?
どのように解決するのですか?
この正確な構造から、例えば
Editable
コンポーネントは、そのコンポーネントに関するすべてを
Editable.jsx
.そして、あなたのコンポーネントコードがそのファイルの中に留まることを意味します。
さて、indexは何のためにあるのでしょうか?indexの中では、次のようなことをするだけです。
import Editable from './Editable.jsx';
export default Editable;
で終わりです。他のコンポーネントやコンテナの内部では、このようなことができるので便利です。
import Editable from '../Editable';
にアクセスしようとするからです。
index.js
ファイルにアクセスしようとするので、それ以上の情報は必要ありません。これは、自動的に
index.js
ファイルを自動的にインポートし、実際のコンポーネントそのものをインポートします。もし
index.js
ファイルがなければ、これを行う必要がありました。
import Editable from '../Editable/Editable';
というのはちょっと厄介ですね。私は、コンポーネントをインポートしてエクスポートするだけのインデックスファイルを持ちたくありません。私が通常行うのは、すべてのコンポーネントコードを
index.js
ファイルの中に、すべてのコンポーネントコードを
Editable.jsx
を全く必要としません。これはあなた次第なので、あなたがより好むアプローチを自由に取ってください。
関連
-
[解決済み] Access-Control-Allow-Originヘッダーはどのように機能するのですか?
-
[解決済み] AngularJSでデータバインディングはどのように機能するのですか?
-
[解決済み] React-routerのURLを更新したり、手動で書き込んだりするとうまくいかない
-
[解決済み] setStateを呼び出さずにReactコンポーネントを強制的に再レンダリングすることは可能ですか?
-
[解決済み] Reactコンポーネントに条件付きで属性を追加するにはどうすればよいですか?
-
[解決済み] Reactコンポーネント外でのクリックを検出する
-
[解決済み] チェックボックスが選択されているかどうかを確認するjQuery
-
[解決済み] React js 親コンポーネントから子コンポーネントの状態を変更する
-
[解決済み] Javascript 空の配列の削減
-
[解決済み] コールバック地獄とは何か、RXはそれをどのように、そしてなぜ解決するのか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 上級者向けJavaScript。この関数はなぜ括弧でくくられるのですか?重複
-
[解決済み] TypeScriptのdeclare classとinterfaceの違いとは?
-
[解決済み] JavaScriptを使用してHTML要素に属性を追加/更新するには?
-
[解決済み] JavaScriptで:hoverのCSSプロパティを変更する
-
[解決済み] JSXとLoadshを使用して、ある要素をn回繰り返す方法
-
[解決済み] moment.jsでミュータビリティを回避するには?
-
[解決済み] モデルフェッチ時に1をtrueに、0をfalseに変換する方法
-
[解決済み] $.ajax実行中にローディングイメージを表示する
-
[解決済み] JavaScriptのArray.sort()メソッドでシャッフルするのは正しいのか?
-
[解決済み] javascriptのキャンバスで画像をリサイズする (スムーズ)