vuejsでdomを取得する方法

藏色散人
リリース: 2021-11-04 14:40:50
オリジナル
3131 人が閲覧しました

Vuejs で dom を取得する方法: 1. コンポーネントの DOM 部分で、任意のタグに「ref="xxx"」を記述します。 2. コンポーネント オブジェクト「this.$refs.xxx」を通じて要素を取得します。 "。 できる。

vuejsでdomを取得する方法

この記事の動作環境: Windows7 システム、vue2.9.6 バージョン、DELL G3 コンピューター。

Vue.js 学習例: DOM 要素の取得

##1. DOM 要素の取得

Vue で DOM 要素を取得するには、

refを使用できます。

使用方法(Reactと同じ):

(1) コンポーネントのDOM部分に任意のタグを記述します:
ref="xxx"### (2) スルーコンポーネント オブジェクトthis.$refs.xxx
要素1 を取得します。HTML タグの DOM を取得します

例 1:

ログイン後にコピー
Console出力:


注: this.$refs.btn は、mounted()vuejsでdomを取得する方法

2 の場合にのみ取得できます。コンポーネントの DOM を取得します

例 2:

ログイン後にコピー
コンソール出力:


コンソールvuejsでdomを取得する方法出力
temp コンポーネント ## であることがわかります。 #。ここで注目したいのは、コンポーネントのさまざまなプロパティ (例: $ el、$parent など) です...console.log(this.$refs. tmp) to:

console.log(this.$refs.tmp.$el);
ログイン後にコピー

コンソールは次の図を出力します。そこから $el が何を表すかを知ることができます~


概要:vuejsでdomを取得する方法

$parent: 現在のコンポーネントの親コンポーネントを取得します。
    $children: · · · · · · · · · · ·
  • # の子コンポーネント$root: 新しい Vue のインスタンスを取得します (つまり、上記: vm)
  • $el: 現在のコンポーネントの DOM 要素を取得します
  • 2. DOM 要素へのイベントの追加

例:

要件: 入力要素が表示された時点で入力のフォーカスを取得します。
ログイン後にコピー
実行後に報告されたエラー:

エラー メッセージは、フォーカスが存在しないことを示しています。理由は
this. $refs.myInputvuejsでdomを取得する方法も未定義です。なぜ ref は DOM 要素を取得しないのでしょうか?
まず考えてみましょう。実装されている関数を

mounted() { this.isShow = true; this.isShow = false; this.isShow = true; },
ログイン後にコピー

に変更した場合、操作プロセス中に、input 要素が最初に表示され、次に消え、その後再び表示されるでしょうか。

答えは否定的です。

Vue では最初にコードが実行され、次に最終値に基づいて DOM 操作が実行されるためです。

実際、上記のコードは次のコードと同等です:

mounted() { this.isShow = true; },
ログイン後にコピー
それでは、どうやって解決すればよいでしょうか?

ここでは、

$nextTick

を使用して ~

vm.$nextTick


使用する場合:

Vue で DOM をレンダリングするページの直後に何かをするには、$nextTick

this.$nextTick(function() { ·····dosomething })
ログイン後にコピー
修正バージョン:

let App = { template: ` 
`, data() { return { isShow: false, }; }, mounted() { //显示input元素的瞬间,获取焦点 this.isShow = true; this.$nextTick(function() { this.$refs.myInput.focus(); }); }, }; let vm = new Vue({ el: '#app', components: { app: App }, template: ``, });
ログイン後にコピー

推奨学習: "
最新の 5 つの vue.js ビデオ チュートリアル特徴###"#########

以上がvuejsでdomを取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。