ホームページ >ウェブフロントエンド >Vue.js >$refs を使用して Vue のコンポーネントと HTML 要素にアクセスする方法

$refs を使用して Vue のコンポーネントと HTML 要素にアクセスする方法

WBOY
WBOYオリジナル
2023-06-11 14:59:021531ブラウズ

Vue の

$refs は、Vue インスタンス内のコンポーネントや HTML 要素にアクセスできるようにする非常に便利な機能です。この機能により、テンプレート内の DOM 要素、計算されたプロパティ、メソッド、ライフサイクル フックに直接アクセスできるようになり、コードの記述が簡素化されます。この記事では、$refs を使用して Vue のコンポーネントや HTML 要素にアクセスする方法を紹介します。

1. コンポーネントへのアクセス

Vue ではコンポーネントは重要なモジュールであり、プロジェクト内で多くのコンポーネントを使用するため、コンポーネントへのアクセスは非常に必要です。では、$refs を使用してコンポーネントにアクセスするにはどうすればよいでしょうか?

Vue では、コンポーネントの ref 属性を設定できます。テンプレートまたは JS では、$refs を使用してこのコンポーネントにアクセスできます。

例を書いてみましょう:

d477f9ce7bf77f53fbcf36bec1b69b7a
dc6dce4a544fdca2df29d5ac0ea9906b

<child-component ref="myComponent"></child-component>

16b28748ea4df4d9c2150843fecfba68
21c97d3a051048b8e55e3c8f199a54b2

3f1c4e4b6b16bbbd69b2ee476dc4f83a
「./ChildComponent.vue」から ChildComponent をインポート

デフォルトの {
コンポーネントをエクスポート: {

ChildComponent

},
マウントされました ( ) {

this.$refs.myComponent.doSomething()

}
}
2cacc6d41bbb37262a98f745aa00fbf0

この例では、親コンポーネント内で ChildComponent という名前の子コンポーネントを参照し、次の ref 属性を追加しました。アクセス。マウントされたライフサイクル フックでは、このコンポーネントにアクセスし、このコンポーネントの doSomething メソッドを呼び出すことができます。

つまり、$refs を使用してコンポーネントにアクセスすると非常に便利で、アクセス操作に直接使用できます。

2. HTML 要素へのアクセス

$refs を使用して HTML 要素にアクセスすることも非常に簡単です。要素に ref 属性を設定し、$refs を使用して JS でこの要素にアクセスすることもできます。例を書いてみましょう:

d477f9ce7bf77f53fbcf36bec1b69b7a
dc6dce4a544fdca2df29d5ac0ea9906b

<input type="text" ref="myInput">

16b28748ea4df4d9c2150843fecfba68
21c97d3a051048b8e55e3c8f199a54b2

27835793f4768f4164d1421d99e293bc
export default {
mount() {

this.$refs.myInput.focus()

}
}
2cacc6d41bbb37262a98f745aa00fbf0

この例では、入力要素を指定します。アクセス用の ref 属性を追加します。マウントされたライフサイクル フックで、 focus() メソッドを呼び出して、input 要素をフォーカスにします。

同様に、$refs を使用して HTML 要素にアクセスすることも非常に便利です。テンプレート内の要素に ref 属性を直接追加して、アクセス操作を実行できます。

3. 注意事項

Vue では、$refs を使用してコンポーネントや HTML 要素にアクセスするのは非常に便利ですが、使用には注意が必要です。 $refs によってアクセスされるコンポーネントと要素はレンダリングされている必要があります。要素またはコンポーネントをマウントする前にアクセスすると、未定義になります。

Vue コンポーネントで非同期操作を実行したり、データを操作したりすると、コンポーネントのライフサイクル フックが変更されます。この変更により、$refs が unknown を返す可能性があります。したがって、$refs を使用するときは注意し、要素またはコンポーネントにアクセスするときにそれがレンダリングされていることを確認してください。

同時に、コンポーネントの一意性を確保するために、コンポーネントの名前にも注意を払う必要があります。 $refs 経由でコンポーネントにアクセスする場合、名前でアクセスするため、同じ名前のコンポーネントが複数ある場合、間違ったコンポーネントにアクセスする可能性があります。

4. 概要

Vue では、$refs を使用してコンポーネントや HTML 要素にアクセスすると非常に便利です。コンポーネントまたは要素に ref 属性を追加するだけで、JS でアクセスできるようになります。ただし、$refs によって返されるコンポーネントまたは要素はすでにレンダリングされていることに注意する必要があり、コンポーネントの一意性を確保するためにコンポーネントの名前に注意を払う必要があります。

実際の開発では、$refs を v-if、v-for、その他の命令と組み合わせて使用​​することで、プロジェクトをより適切に完了することができます。もちろん、$refs を使用する場合は、過度に使用しないように注意してください。また、一方向のデータ フローの原則が崩れてしまうため、親コンポーネントで子コンポーネントのデータを直接変更することも避けてください。

以上が$refs を使用して Vue のコンポーネントと HTML 要素にアクセスする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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