Vueのレスポンシブシステムの基本原則
次に、この方法の使用法を簡単に確認し、この原則を完全に理解できるようにいくつかの実用的な例を使用します。 1. Object.definePropertyの使い方を確認するパラメータの説明: obj: 対象オブジェクト prop: 操作対象となる対象オブジェクトのプロパティ名 description: 記述子 オブジェクトに渡された戻り値 記述子のいくつかの属性。いくつかの属性を簡単に紹介します。 enumerable、プロパティが列挙可能かどうか。デフォルト値は false です。 プロパティを変更または削除できるかどうかを構成可能。デフォルト値は false です。 書き込み可能、プロパティが変更可能かどうか、デフォルト値は false get、属性を取得するメソッド。 set、プロパティを設定するメソッド。 完全な使用方法: オブジェクト.defineProperty(obj, prop, 記述子) 2. 練習1: Object.definePropertyを使用して人の年齢プロパティを監視する落とし穴 以下のコードを見てください。一見、何も問題がないように見えますか? 誰かが person の age 属性を読み取ると、 person の age 属性を返します。誰かが person の age 属性を変更すると、 person.age の値を直接変更します。 しかし!学生の皆さん、実行した後、エラーは発生しませんが、コンパイラは「@@Someone read the age property」を出力し続けます。 これはなぜでしょうか?考えてみてください。get 関数で person.age を直接返すと、これは人物の age 属性を再度読み取ることになりますか?このとき、プログラムは age の get 関数を何度も繰り返し実行します。 たとえば、これは、age を読み取りたいので、コンパイラーに person.age を出力したいと伝えるのと同じです。コンパイラーは person.age をチェックし、get 関数があることを発見したので、get 関数を実行します。この時点で、その値を取得することになると思いますが、get 関数が再びコンパイラーに person.age が欲しいと伝えるとは予想していませんでした。こうして悪循環が形成されます! ! それで、どうやって解決するのでしょうか? get で person.age を直接返すことはできないので、この属性の値を取得するにはどうすればよいでしょうか? 回答:変数に置き換えることはできますか? person.age の値を変数 ageNumber に格納します。値を読み取る場合は ageNumber の値を返し、値を変更する場合は ageNumber の値を変更します。 これにより、get 関数と set 関数で person.age を直接使用してアクセスする必要がなくなるのではないでしょうか。 正しいコード この時点で効果は完了しており、読み取りおよび変更時に監視できます。 3. データブローカーデータブローカーとはどういう意味ですか? A:簡単に言うと、オブジェクトプロキシを介して別のオブジェクトのプロパティを操作(読み取り/書き込み)することです。 ちょっと抽象的ですよね?次の小さな例でこれを説明しましょう。 教師が生徒の成績を確認または変更したい場合、生徒オブジェクトを直接操作することなく、教師オブジェクトを直接操作できます。 上記で説明したいのは、教師オブジェクト(teacher)が生徒オブジェクト(student)のスコア属性(score)の操作(読み取り/書き込み)を委譲するということです。 4. Vueでレスポンシブ思考を実装するVue2 の基本的な知識がある学生は、Vue の data() {} で定義されたデータが vm オブジェクトにマウントされることを知っている必要があります。次に、this.data という名前を通じてデータを操作します。 これは、上記の小さな例のシナリオと同等でしょうか? ここで、vm オブジェクトは、定義したデータ オブジェクト内の属性の操作 (読み取り/書き込み) をプロキシします。 Vue のレスポンシブ原則を完全に実装するために別の例を使用しましょう。 データオブジェクト内のすべての属性をプロキシのVMオブジェクトに渡します(VMにデータオブジェクト内の属性の(読み取り/書き込み)操作を制御させます)。データが変更されると、対応するビューを更新できます。 要約する1. Vue のデータプロキシ: vmオブジェクトを使用して、データオブジェクト内の属性の操作(読み取り/書き込み)をプロキシします。 2. Vue のデータプロキシの利点:データ内のデータのより便利な操作 3. 基本原則: VM に追加される各プロパティに対して、ゲッター/セッターを指定します。 4. Vueでレスポンシブ思考を実装する
1. 下の図の方法は、データオブジェクトのgetとsetを設定するための一般的な方法です。 2. 新しいVueを作成すると、ユーザーが渡したデータオブジェクトがVueインスタンスに直接マウントされます。 次に、Vueインスタンス上のデータオブジェクトを監視します(レスポンシブ処理) この記事はこれで終わりです。皆さんのお役に立てれば幸いです。また、123WORDPRESS.COM のその他のコンテンツにも注目していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: Linux で FastDFS を使用してイメージ サーバーを構築する
>>: MySQL はカスタムシーケンスを使用して row_number 関数を実装します (詳細な手順)
キャラクター小数点文字番号エンティティ名---未使用空間---スペースバー! ! ---感嘆符「 」...
WeChatアプレット計算機の例、参考までに、具体的な内容は次のとおりです。インデックス.wxml ...
この記事では、検証コードのランダム生成と検証を実現するためのJavaScriptの具体的なコードを参...
Nginx は、IP ベースの仮想ホスト構成、ポート ベースの仮想ホスト構成、ドメイン名ベースの仮想...
MySQL トランザクション サポートは、MySQL サーバー自体にバインドされているのではなく、ス...
IE は開発の初期段階では頭を悩ませましたが、他のブラウザとは異なります。他のブラウザがサポートして...
目次1. Dockerをビルドする2. コンテナに入る3. 設定ファイルを変更する4. Kafkaを...
HTMLを学ぶとき、画像タグ<img>は画像を導入します <img src=&qu...
CSS によりプロセスナビゲーション効果を実現します。具体的な内容は以下のとおりです。 ::tip...
仮想マシンを使用しているときに、ディスク容量が不足し、継続使用するためにディスクをマウントする必要が...
1. サービス方法ファイアウォールのステータスを確認します。 [root@centos6 ~]# サ...
デザインの分野では、毎年さまざまなデザインのトレンドや流行があります。たとえば、近年のレスポンシブデ...
シンプルな Linux 推測ゲームのソースコードゲームのルール:数字当てゲームは通常 2 人でプレイ...
1つ以上の機能をロードする <テンプレート> <div id="map&...
1. Windows 版の Docker をインストールしたら、Docker クイックスタート ター...