Vue3 では、レスポンシブ データを作成するための新しいメソッドがいくつか追加されました。もちろん、それぞれの機能も異なります。各メソッドには独自のアプリケーション シナリオがあります。今日は、ref、toRef、toRefs とは何かについて説明します。使い方の違いは何でしょうか?最も良い使い方は何でしょうか? 1. 基本1.参照(1)値型のレスポンシブデータを生成し、.valueを通じて値を変更する <テンプレート> <div>{{ ageRef } } </テンプレート> <スクリプト> 'vue' から { ref } をインポートします エクスポートデフォルト{ 設定() { 定数ageRef = ref(20) 間隔を設定する(() => { 年齢参照値 += 1 }, 1000) 戻る { 年齢参照 } }, } </スクリプト> 上記のコードは ageRef 変数を定義し、ageRef を毎秒 1 ずつ増加させます。ページに表示される値も 1 ずつ増加します。 (2)反応性にも使える 上記のコードを以下のように変更し、reactive定義変数をインポートし、ref定義変数をreactiveにインポートし、テンプレートにreactive変数を表示します。最終的な効果は上記(1)と同じです。 <テンプレート> <div>{{ info.age }}</div> </テンプレート> <スクリプト> 'vue' から { ref, reactive } をインポートします エクスポートデフォルト{ 設定() { 定数ageRef = ref(20) const 情報 = リアクティブ({ 年齢: ageRef }) 間隔を設定する(() => { 年齢参照値 += 1 }, 1000) 戻る { 情報 } }, } </スクリプト> (3)ドムを得るために使用できる <テンプレート> <div ref="eleDom">ref-dom-test</div> </テンプレート> <スクリプト> 'vue' から { ref, onMounted } をインポートします エクスポートデフォルト{ 設定() { const eleDom = ref(null) マウント時(() => { console.log(eleDom.value.innerHTML) // ref-dom-テスト }) 戻る { エレドム } }, } 上記コードのコンソールには ref-dom-test が出力され、Dom 要素が取得されたことが示されます。 定義された ref 変数名は、コード内の eleDom など、テンプレート ref の値と一致している必要があります。 2. 参照
次のコードを見てみましょう <テンプレート> <div>{{ state.age }} --- {{ ageRef }}</div> </テンプレート> <スクリプト> 'vue' から { toRef, reactive } をインポートします。 エクスポートデフォルト{ 設定() { 定数状態 = リアクティブ({ 名前: 'JL', 年齢: 18 }) const ageRef = toRef(状態、'年齢') タイムアウトを設定する(() => { 状態.年齢 = 20 }, 1000) タイムアウトを設定する(() => { 年齢参照値 = 21 }, 2000) 戻る { 州、 年齢参照 } }, } </スクリプト> 上記のコードでは、toRef を使用して state の age プロパティをレスポンシブ変数に変換しています。その後、1 秒後に state の age 値が 20 に変更され、その時点で ageRef も 20 になります。2 秒後に ageRef の値が 21 に変更され、その時点で state の age 値も 21 になり、2 つが相互参照関係を維持していることを示します。 toRef は応答性のためのものであり、通常のオブジェクトではありません。応答性のない目的で使用すると、出力結果は応答性がなくなります。 3. 参照
次のコードを見てみましょう <テンプレート> <div>{{ 名前 }}---{{ 年齢 }}}</div> </テンプレート> <スクリプト> 'vue' から { reactive, toRefs } をインポートします。 エクスポートデフォルト{ 設定() { 定数状態 = リアクティブ({ 名前: 'JL', 年齢: 18 }) 定数stateRefs = toRefs(状態) タイムアウトを設定する(() => { 状態.年齢 = 20 }, 1000) タイムアウトを設定する(() => { 状態参照年齢値 = 21 }, 2000) stateRefsを返す }, } </スクリプト> 上記のコードでは、toRefs を使用して state を通常のオブジェクトに変換しています。このとき、stateRefs は直接返すことができ、name と age はテンプレート内で直接呼び出すことができます。そして、1 秒後に state の age 値が 20 に変更され、ページ上の age 値も 20 になります。2 秒後には、stateRefs の name 値が 21 に変更され、ページ上の age 値も 21 になり、両者が相互参照関係を維持していることを示します。 toRefs がレスポンシブ オブジェクトを通常のオブジェクトに変換した後、各属性にはレスポンシブ ref が設定されます。このとき、その値を取得するには .value を使用する必要があります。 4. 最適な使い方
例えば: <テンプレート> <div>x:{{x}} y:{{y}}</div> </テンプレート> <スクリプト> 'vue' から { reactive, toRefs } をインポートします。 エクスポートデフォルト{ 設定() { 関数テスト() { 定数状態 = リアクティブ({ x: 1, 年: 2 }) 参照を返す(状態) } 定数{x, y} = テスト() タイムアウトを設定する(() => { x.値 = 2 }, 1000) 戻る { ×、 ええ } } } </スクリプト> 上記のコードでは、テスト関数内でレスポンシブオブジェクトの状態を定義し、それを通常のオブジェクトに変換してtoRefsを通じて返しています。このとき、構造を割り当てることができ、値はレスポンシブです。 2. 詳細な1. なぜrefが必要なのか?上で述べたように、reactive と toRef を使用すると、値の型をレスポンシブなものに変換することもできますが、それでも ref が必要なのはなぜでしょうか。
2. ref に .value が必要な理由ref は値を取得するために .value を追加する必要があるのはなぜですか? なぜ面倒なのでしょうか?
3. toRef と toRefs が必要なのはなぜですか?
Vue3 の ref toRef と toRefs の違いを理解する方法についての記事はこれで終わりです。Vue3 の ref toRef と toRefs に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: mysql-connector-java8.0.27 へのアップグレードに関する注意事項
テーマ今日は、CSS3 を使用して円形スクロール プログレス バー アニメーションを作成する方法を説...
「これは革命になるだろう」という記事が出たあと。業界の皆様に認知され、もちろん内外からの評価もいただ...
目次1. インストール1. はじめに3. インターフェースルートアドレス4. 使用例4.1 ダウンロ...
目次新しい HTML ファイルを作成します。初期テンプレートを作成するHTML の追加CSS パディ...
アメリカのYAHOOがページ制作で使用している画像統合技術。これらのアイコン、列背景、画像ボタンを定...
マイクリMyCLI は、自動補完と構文の強調表示を備えた MySQL、MariaDB、および Per...
目次序文1. イベントとクリップボードを貼り付ける2. クリップボード内のコンテンツ形式3. HTM...
フォーカス画像は、画像、テキスト、動的なインタラクティブ効果を統合したコンテンツを表示する方法です。...
画像をダウンロード docker プル openjdkデータボリュームの作成java_appデータボ...
Docker システムの学習チュートリアルでは、Dockerfile を使用して Docker イメ...
目次1. はじめに2. 関数型プログラミングとは何ですか? 3. 純粋関数(関数型プログラミングの基...
/etc/my.cnf または /etc/mysql/my.cnf ファイルを変更する [クライアン...
目次横棒グラフデータとスタイルを動的に更新するeChartsの幅と高さの適応の問題を解決する縦棒グラ...
目次導入効果原理形状練習するこの記事では、例を使用して、MySQL マスター/スレーブ レプリケーシ...
フォーマットはシンプルです: proxy_pass URL; URL には、送信プロトコル (htt...