今回は、Vue で watch を使用する方法を説明します。Vue で watch を使用する際の 注意事項 について、実際のケースを見てみましょう。
次のコードがあるとします。<p> <p>FullName: {{fullName}}</p> <p>FirstName: <input type="text" v-model="firstName"></p> </p> new Vue({ el: '#root', data: { firstName: 'Dawei', lastName: 'Lou', fullName: '' }, watch: { firstName(newName, oldName) { this.fullName = newName + ' ' + this.lastName; } } })
watch: { firstName: { handler(newName, oldName) { this.fullName = newName + ' ' + this.lastName; }, // 代表在wacth里声明了firstName这个方法之后立即先去执行handler方法 immediate: true } }
deep 属性
watch には deep 属性もあります。これは、深く監視するかどうかを表します。たとえば、データに obj 属性があります。入力ボックスで、ビューが obj .a 値を変更すると、それが無効であることがわかりました。最新のJavaScript
の制限 (および Object.observe の非推奨) により、Vue はオブジェクト プロパティの追加または削除を検出できません。 Vue はインスタンスの初期化時にプロパティのゲッター/セッター変換プロセスを実行するため、Vue が応答できるように変換するには、プロパティがデータ オブジェクトに存在する必要があります。デフォルトでは、ハンドラーは属性 obj の参照の変更のみを監視します。たとえば、マウントされたイベント
フック関数で obj を再割り当てする場合のみ変更を監視します。 way ハンドラーが実行され、変更された obj.a が出力されます。逆に、obj の属性 a の値を監視する必要がある場合はどうすればよいでしょうか?このような場合には、deep 属性が役に立ちます。
<p> <p>obj.a: {{obj.a}}</p> <p>obj.a: <input type="text" v-model="obj.a"></p> </p> new Vue({ el: '#root', data: { obj: { a: 123 } }, watch: { obj: { handler(newName, oldName) { console.log('obj.a changed'); }, immediate: true } } })
string
フォームモニタリングを使用できます。mounted: { this.obj = { a: '456' } }
JS を使用して文字列に含まれるコンテンツを決定する方法の概要
Angular+RouterLink によるさまざまな派手なジャンプ
以上がVue でウォッチを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。