ko.utils.unwrapObservable と ko.toJS の違いは何ですか? 質問する

ko.utils.unwrapObservable と ko.toJS の違いは何ですか? 質問する

2つの違いは何ですか?

ラップされていない Observable は js プリミティブに分解されるので、これらは確かに同じものです。では、なぜ ko.toJS が必要なのでしょうか、あるいはその逆はどうなのでしょうか?

また、なぜ ko.mapping.toJS があるのでしょうか? これは事実上 ko.toJS と同じことをするのではないのでしょうか? knockoutJS には同じことを行う関数がいくつかあるようですが、それらが存在するのには理由があるはずです。

ベストアンサー1

それらの間には違いがあります。

ko.toJSオブジェクトを受け取り、オブジェクトを「開き」、すべての観測可能なものからクリーンアップします。これはオブジェクトグラフ全体に対して行われます。シリアライザのように動作するため、たとえば循環参照がある場合に問題が発生することがあります。マップJsオブジェクトグラフ内部的には複雑すぎて、今のところ頭の中で完全にコンパイルすることはできません。ただし、サーバーに何かを投稿する必要がある場合は、これを使用する傾向があります。

ko.utils.unwrapObservable値が観測可能かどうかを判断し、観測可能であれば、基になる値を返します。観測可能でない場合は、値のみを返します。たとえば、マッピング プラグインを使用していて、観測可能と観測不可能の両方を持つモデルを作成する場合などに便利です。

ko.mapping.toJS機能面で重複していると思われるのは、このリストにある唯一のものです。マップされたオブジェクト グラフを元の状態に戻すために使用されます。ko.toJS よりもずっとシンプルに見えますが、私はまだ使用していないため、これについて詳しく説明することはできません。詳細を読むここ

おすすめ記事