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 関数を実装します (詳細な手順)
ブラウザの互換性は、実際の開発では見落とされがちな最も重要な部分です。古いバージョンのブラウザの互換...
多くの場合、画像をコンテナのサイズに合わせて調整する必要があります。 1. imgタグ方式幅と高さを...
訪問者があなたのウェブサイトを覚えておくのに役立つ3つの便利なコード。お気に入りに追加するためのヒン...
この記事では、WeChatアプレットの具体的なコードを参考までに共有します。具体的な内容は次のとおり...
この記事ではMySQL 5.7.16のインストールと設定方法を記録します。具体的な内容は以下のとおり...
序文ソートはデータベースの基本的な機能であり、MySQL も例外ではありません。ユーザーは、Orde...
今日は、Docker イメージ、各レイヤーの内容を調べ、Docker/OCI イメージのサイズを縮小...
目次サイクル比較使用法要約するサイクル比較ヴュー2ヴュー3作成前設定作成された設定マウント前マウント...
必要フィールドをクエリする場合、フィールドに同じ値を指定する必要があります。この値はハードコードする...
目次1. 機能説明2. 親コンポーネント3. サブコンポーネント NextTick.vue 4なぜ未...
MySQLの読み書き分離の落とし穴読み取りと書き込みの分離の主な目的は、メイン データベースの負荷を...
MySQL は、スウェーデンの会社 MySQL AB によって開発されたリレーショナル データベース...
目次1. 百度百科事典1. MySQL 2. PostgreSQL 3. MySQL に対する Po...
この記事では主に、リクエストを転送したり、静的リソース ファイルにアクセスしたりする nginx の...
1. 概要ネットでいろいろ検索してみたところ、Linux システム向けではなく、現在の新しいバージ...