ホームページ > 記事 > ウェブフロントエンド > Immutable.js の詳細な説明
今回は Immutable.js について詳しく説明します。Immutable.js を使用する際の 注意事項 は何ですか?実際の事例を見てみましょう。
react + router + redux プロジェクトにおける Immutable.js のアプリケーション最初に Immutable を紹介します: Immutable.js の出現は、関数型プログラミングのアイデアに由来しています。つまり、すべてのデータは、代わりにコピーされる必要があります。直接変更されました。関連する紹介については、公式 Web サイトを参照してください:
https://facebook.github.io/immutable-js/
JavaScript 構文 自体の配列 ([]) とオブジェクト ({ }) が Immutable.List と Immutable.Map に変更されます。
しかし、結局のところ、ArrayList と LinkedList は両方とも List を継承しており、インターフェイスは比較的一貫しているので、それらを置き換えることは大きな問題ではありません。ただし、JavaScript ネイティブを置き換えるために Immutable を使用したい場合は、少し手間がかかります。複雑。rreee
複雑ですが、もう少し注意してください。 それではreduxとrouterについてお話しましょうReduxにはReducerを分割できるcombineReducersメソッドがあります。例:var map1 = Immutable.Map({a:1, b:2, c:3});var map2 = map1.set('b', 50); map1.get('b'); // 2/* ----------------悠长悠长的分割线---------------- */var list1 = Immutable.List.of(1, 2);var list2 = list1.push(3, 4, 5);var list3 = list2.unshift(0);var list4 = list1.concat(list2, list3);次に質問が来ます:
状態を取得するとき、state.get('user') と state.user のどちらを使用しますか?
(混ぜろとは言わないでください。1層の構造はこのようになりますが、複数の層はどうですか?複数人での共同作業はどうですか?1か所で混乱していると、どこでもエラーが発生します)
それから、ここを見てください (この人はcombineReducersを書き直しました):
https://github.com/gajus/redux-immutable
次に、Immutable を導入する必要があります。
ダムコンポーネントは基本的に抽象化され、複数のプロジェクトで共有される必要があります。これらのコンポーネントが Immutable をサポートしない方が良いでしょう。サポートしないと、Immutable に関連付けられてしまいます。
データはコンポーネントにコピーされているので、互換性のために少し犠牲にしても問題ありませんね?
redux コンセプトのコンテナーは、state と props 間、および props とディスパッチ間を接続するときに、Immutable とネイティブの間の相互変換も実行します。 (アダプター パターン)
Android 開発で js を操作する方法
Vue.js 2.0 以降で作成されたグラファイト ドキュメント スタイルのリッチ テキスト エディター
以上がImmutable.js の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。