vue2 プロジェクト開発の経験があれば、$refs に精通しているでしょう。 vue3 の急激なアップグレードにより、vue3 で $refs を使用するにはどうすればよいでしょうか?以前にも同様の問題に遭遇したことがあると思います。私も同じ疑問を抱いています。検索エンジンと GitHub を通じて、基本的に $refs の使い方を習得できます。 vue3 では、結合された API の関数 ref を使用して、静的または動的 HTML 要素のアプリケーションを置き換えます。 最近、空き時間を利用してvue3プロジェクト「Crayon Management Template: Vue3 + Vuex4 + Ant Design2」の開発を学んでいます。この2日間でイテレーションが少し進み、チャートコンポーネントが実装されました。記事を書いているときに、提出したコードのコミットにタイプミスがあることに気付きました。 vue3 で統合 API の setup() メソッドを使用する場合、this.$refs は通常使用できませんが、新しい関数 ref() は使用できます。 以下のコードは https://github.com/QuintionTang/crayon/blob/feat-dashboard/src/qtui/components/Chart.vue から取得したものです。 <テンプレート> <canvas ref="refChart" :height="setHeight"></canvas> </テンプレート> <スクリプト> 「vue」から、defineComponent、onMounted、ref、inject、watch } をインポートします。 「chart.js」からチャートをインポートします。 "@/helper/index" から deepCopy をインポートします。 エクスポートデフォルトdefineComponent({ 名前: "QtChart", 小道具: { タイプ: { タイプ: 文字列、 必須: true、 デフォルト: "line", }, データ: { タイプ: オブジェクト、 必須: true、 デフォルト: () => ({}), }, オプション: タイプ: オブジェクト、 デフォルト: () => ({}), }, 身長: タイプ: 数値、 デフォルト: 0, }, 参照キー: { タイプ: 文字列、 デフォルト: null、 }, }, セットアップ(プロパティ) { 定数refChart = ref(); // 初期化メソッド const init = () => { const canvasChart = refChart.value?.getContext("2d"); const chartHelper = 新しい Chart(canvasChart, { タイプ: props.type、 データ: deepCopy(props.data)、 オプション: props.options、 }); ウォッチ(props, () => { chartHelper.data = deepCopy(props.data); chartHelper.options = props.options; チャートヘルパーを更新します。 }); // インスタンスをrefChartにアタッチする refChart.value.instance = chartHelper; }; // 高さを設定する const setHeight = () => { 戻る { 高さ: props.height、 }; }; // インスタンスをバインドして inject を使用します const bindInstance = () => { (props.refKey)の場合{ 定数bind = inject(`bind[${props.refKey}]`); if (バインド) { バインド(refChart.value); } } }; マウント時(() => { バインドインスタンス(); 初期化(); }); 戻る { 参照チャート、 高さを設定する、 }; }, }); </スクリプト> このコードはチャート コンポーネント Chart を完全に実装します。このコンポーネントでは、プロパティ props がカスタマイズされ、そのプロパティ値はセットアップ メソッドにパラメーターを渡すことによって使用されます。チャートの dom オブジェクトとして html で ref="refChart" を定義します。setup メソッドでは、ref メソッドを使用してレスポンシブ変数オブジェクトを定義し、setup 関数の最後に戻り値として使用します。 定数refChart = ref(); 戻り値の属性名は HTML 内の ref 値と一致している必要があることに注意してください。 以下のコードは正常に実行できます。 <テンプレート> <canvas ref="refChart" :height="setHeight"></canvas> </テンプレート> <スクリプト> 「vue」から、defineComponent、onMounted、ref、inject、watch } をインポートします。 「chart.js」からチャートをインポートします。 "@/helper/index" から deepCopy をインポートします。 エクスポートデフォルトdefineComponent({ 名前: "QtChart", 小道具: { // ... }, セットアップ(プロパティ) { const refChartBox = ref(); // ... 戻る { refChart:refChartBox、 }; }, }); </スクリプト> 以下の状況ではプログラムエラーが発生し、期待した結果が得られません。これは、HTML で定義された ref="refChart" が、セットアップによって返される refChartBox と一致していないためです。 <テンプレート> <canvas ref="refChart" :height="setHeight"></canvas> </テンプレート> <スクリプト> 「vue」から、defineComponent、onMounted、ref、inject、watch } をインポートします。 「chart.js」からチャートをインポートします。 "@/helper/index" から deepCopy をインポートします。 エクスポートデフォルトdefineComponent({ 名前: "QtChart", 小道具: { // ... }, セットアップ(プロパティ) { const refChartBox = ref(); // ... 戻る { refChartBox、 }; }, }); </スクリプト> 結論は今回はたまたまプロジェクトで使っているrefメソッドの使い方を簡単に紹介しただけです。今後はプロジェクトを進めながらメモを取りながら学んでいきたいと思います。 これで、vue3 組み合わせ API における vue2 の $refs の代替方法についての記事は終了です。より関連性の高い vue3 組み合わせ API コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: Nginx サーバーで Web クローラーをブロックおよび禁止する方法
>>: Centos7でmysql5.7.19のデータ保存場所を移動する方法
目次概要1. URL経由でダウンロード2. aタグのダウンロード属性とblobコンストラクタを組み合...
今日は新しいCSS特殊効果、波型ウォーターボール効果を学びました。これもとても美しいです HTML:...
<div class="サイドバー"> <div> &...
以下のように表示されます。 XML/HTML コードコンテンツをクリップボードにコピー<htm...
この記事に誤りがあったり、ご提案がありましたら、お気軽にご連絡ください。よろしくお願いいたします。は...
目次1. 概要1. 説明文テスト2. 結果の各列の説明2. ID列の説明1. 環境整備2. expl...
現在の日付を照会する CURRENT_DATE() を選択します。 CURDATE() を選択する;...
MySQL は、ネットワーク経由だけでなく、名前付きパイプ経由でも接続できます。MySQL への接続...
目次ミニプログラム開発者ツールのソースコードを表示する方法ミニプログラムアーキテクチャ設計1. ミニ...
docker コマンドを初めて使用する場合、権限の問題を確認するメッセージが表示されます。 unix...
今日は、タブ バーをクリックして切り替えるという目的を実現するために、js と jQuery を使用...
この記事では、MySQL 8.0.15 winx64解凍版のインストールと設定方法を紹介します。具体...
序文レイアウトの点では、Gobang はランダムな動きを目的とするゲームよりも実装がはるかに簡単で、...
この記事では、セキュリティ、使用方法、同時処理などを通じて、MySQL トランザクションとデータの一...
目次1. 依存関係をインストールする2. vue.config.js ファイルで pwa を設定しま...