「combineReducers」のAPIドキュメントの一部として説明されている例では、ストアの作成時に、パラメーターとしての「reducer」がファイル「 app.js 」( let store = createStore(reducer)
)のcreateStoreに渡されます。
ただし、「reducers / index.js 」では、関数名は「combineReducers」であり、「reducer」( export default combineReducers({..})
)ではありません。
したがって、ストアの作成時に渡されるパラメーターは「combineReducers」(例: let store = createStore(combineReducers
))ではありませんか?
いいえと思います。 考えてみれば、Reduxにはレデューサー機能が1つしかない。 この例でcombineReducers
を使用してその関数を作成しているという事実は、実装の詳細です。 app.js
に関する限り、その関数内で何が起こっているのか、どのように作成したのか、何をしているのかはわかりません。
また、 reducers/index.js
がexport default combineReducers({})
場合、実際には「combineReducers」という名前のものを_作成_していないことに注意してください。 「この関数呼び出しの結果を、それが何であれ、それをデフォルトのエクスポートにします」と言っています。 実際、技術的には、その出力には実際の変数名が関連付けられていません。
最後に、 export default
を実行すると、デフォルトのエクスポートでインポートされたファイルは、ローカル変数に任意の名前を付けることができます。これは、関数定義が、で使用された変数名とは異なる名前をパラメーターに付ける方法と同じです。コールサイト。 例:
function someFunction(a, fred, randomVariableName) {}
const firstVariable = 1;
const theMeaningOfLife = 42;
const aTotallyUselessName = "Whatever";
someFunction(firstVariable, theMeaningOfLife, aTotallyUselessName);
関数の外部で定義する変数名が、関数の内部のパラメーター名とどのように対応している必要がないかに注意してください。
同様に、エクスポートする場合:
// fileA.js
export default const aThing = 42;
// fileB.js
import iCanGiveThisAnyNameIWant from "fileA";
@markeriksonこれらの素晴らしい答えをありがとう。
@markeriksonありがとうございます。
Reactの知識を除いて、JQueryで使用するReduxを学んでいます。 あなたの答えは、Reactコードの例をよりよく理解するのに役立ちます。
最も参考になるコメント
いいえと思います。 考えてみれば、Reduxにはレデューサー機能が1つしかない。 この例で
combineReducers
を使用してその関数を作成しているという事実は、実装の詳細です。app.js
に関する限り、その関数内で何が起こっているのか、どのように作成したのか、何をしているのかはわかりません。また、
reducers/index.js
がexport default combineReducers({})
場合、実際には「combineReducers」という名前のものを_作成_していないことに注意してください。 「この関数呼び出しの結果を、それが何であれ、それをデフォルトのエクスポートにします」と言っています。 実際、技術的には、その出力には実際の変数名が関連付けられていません。最後に、
export default
を実行すると、デフォルトのエクスポートでインポートされたファイルは、ローカル変数に任意の名前を付けることができます。これは、関数定義が、で使用された変数名とは異なる名前をパラメーターに付ける方法と同じです。コールサイト。 例:関数の外部で定義する変数名が、関数の内部のパラメーター名とどのように対応している必要がないかに注意してください。
同様に、エクスポートする場合: