Vue 開発者として、DOM 要素の値の取得はよく遭遇する問題ですが、取得した値が null
だった場合はどうすればよいでしょうか?この記事では、開発者がこのような状況にうまく対処できるように、Vue が null
の DOM 値を取得する方法についていくつかの方法を紹介します。
#null の DOM 値を取得する方法を紹介する前に、まず
null の DOM 値が何であるかを理解する必要があります。
$refs などのメソッドで DOM 要素を取得した場合、何らかの理由で要素がレンダリングまたはマウントされない場合があります。このとき、取得した DOM 要素の値は無効である###。
DOM 値を null にする方法
を使用します。レンダリング後に Vue インスタンスが初期化されると、DOM の更新後に
this.$nextTick()mounted() { this.$nextTick(() => { const dom = this.$refs.dom; if (dom === null) { console.log("DOM值为null"); } }); }
2.
v-if ディレクティブを使用するVue を使用する場合、通常、DOM 要素をレンダリングする前に
v-ifnull として取得できます。
<template> <div> <child ref="child" v-if="show"></child> </div> </template> <script> export default { data() { return { show: false } }, mounted() { this.show = true; this.$nextTick(() => { const dom = this.$refs.child.$el; if (dom === null) { console.log("DOM值为null"); } }); } } </script>
上記のコードでは、子コンポーネントがレンダリングされないように、最初に
show を false に設定します。次に、
mounted ライフサイクル フックで
show を
true に設定し、
$nextTick() メソッドを使用して DOM を取得します。 DOMが更新される要素の値を判断します。
3.
v-cloak
v-cloak<template> <div> <div v-cloak v-if="isShow" ref="dom">{{message}}</div> </div> </template> <script> export default { data() { return { isShow: false, message: "DOM渲染完成" } }, mounted() { this.isShow = true; const dom = this.$refs.dom; if (dom === null) { console.log("DOM值为null"); } } } </script>
上記のコードでは、
v-cloak ディレクティブと v-if ディレクティブを同時に使用して、DOM 要素のレンダリングと非表示を制御します。 。 DOM描画後、DOM要素の値を取得して判定します。
概要
this.$nextTick()、
v-if ディレクティブ、および
v-cloak ディレクティブを使用して
null の DOM 値を取得する 3 つの方法を紹介します。 . の状況と、対応するコード例が提供されます。開発者は、特定の状況に基づいて 1 つ以上の方法を選択して、このような問題をより適切に処理できます。
以上がvue はどのようにして dom 値を null にしますかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。