Vue開発の一般的な手法の詳細な説明

Vue開発の一般的な手法の詳細な説明

$nextTick()

this.$nextTick() は、次の DOM 更新サイクルが終わるまでコールバックを遅延します。データの変更後すぐに使用し、DOM が更新されるまで待機します。

使用シナリオ 変数が最初に割り当てられたか更新されたが、DOM が更新されていない場合、変数値の使用は機能しないことがあります。この時点で、 this.$nextTick() を使用して DOM 更新が読み込まれるのを待機し、すぐに使用する必要があります。作成されたフック関数や DOM 更新を伴う状況でよく使用されます。
使用法

this.$nextTick(() => { this.$refs.table.refresh(true)})

this.$nextTick() は、ページインタラクション、特にバックグラウンドからデータを取得した後のDOMオブジェクトの再生成後の操作において大きな利点があります。

$forceUpdate()

Vue インスタンスを強制的に再レン​​ダリングします。これは、すべての子コンポーネントではなく、インスタンス自体とスロット コンテンツに挿入された子コンポーネントにのみ影響することに注意してください。

使用シナリオ

オブジェクトの配列などの複雑なオブジェクトの場合、配列内の要素に属性を直接追加したり、配列の長さを直接 0 に変更したりできます。Vue は変更が発生したことを認識できないため、強制更新を使用できます。

一方、フォームがレンダリングされるときに、選択操作が実行されることがありますが、フォームの内容は更新されません。強制更新を使用することができます。

ここに画像の説明を挿入

使用法

this.$nextTick(() => {
  this.$refs.table.refresh(true)
})

$セット()

使用シナリオ

ES5 の制限により、Vue.js はオブジェクト プロパティの追加または削除を検出できません。

レスポンシブ オブジェクトにプロパティを追加し、新しいプロパティもレスポンシブであり、ビューの更新をトリガーすることを確認します。 Vue は通常の新しいプロパティ (this.myObject.newProperty = 'hi' など) を検出できないため、レスポンシブ オブジェクトに新しいプロパティを追加するにはこれを使用する必要があります。

オブジェクトは Vue インスタンス、または Vue インスタンスのルート データ オブジェクトになることはできないことに注意してください。

使用法

this.$set( ターゲット、プロパティ名/インデックス、値 )

  • target : 変更するデータソース(オブジェクトまたは配列)
  • propertyName/index : オブジェクトの新しく追加されたプロパティの名前、または配列の新しく追加された要素のインデックス位置
  • value : 新しく追加された属性の値
// オブジェクト this.$set(this.student,"age", 24)
// 配列 this.$set(this.arrayList, 2, { name: "张三" })

.sync——2.3.0 以降の新機能 (Vue 3.x では v-model に置き換えられ、サポートされなくなりました)

使用シナリオ

場合によっては、プロパティに対して「双方向バインディング」を実行する必要があります。Vue 2.3.0 以降では、.sync 修飾子を使用してこれを実行できます。 Vue 3.0以降はサポートされなくなりました

使用法

親コンポーネント

<comp :foo.sync="bar"></comp>

実際、それは次のように拡張される。

<comp :foo="bar" @update:foo="val => bar = val"></comp>

サブコンポーネント

this.$emit('update:foo', newValue)

要約する

この記事はこれで終わりです。皆さんのお役に立てれば幸いです。また、123WORDPRESS.COM のその他のコンテンツにも注目していただければ幸いです。

以下もご興味があるかもしれません:
  • Vue3コンポーネントの開発詳細
  • 実践的なVue開発スキル
  • Vue Element フロントエンドアプリケーション開発は ABP フレームワークのフロントエンドログインを統合します
  • Vue.js を使用して WeChat アプレットを開発するオープンソース フレームワーク mpvue 分析
  • Vueフレームワークでの商品コンポーネント開発の詳細説明
  • Vueフレームワークとフロントエンドおよびバックエンド開発の詳細な説明

<<:  ROS2のインストールとdocker環境の使い方について

>>:  Webフロントエンドスキル概要(個人の実務経験)

推薦する

HTML ページで JSON データを表示およびフォーマットする方法

JSONデータはHTMLページ上に表示されフォーマットされます1. 表示効果図説明:すべてのキー値は...

CentOS 7 で MySQL 8 の複数のインスタンスを設定する詳細なチュートリアル (必要な数だけ設定できます)

原因最近、プロジェクトのリファクタリングを始めたのですが、マスタースレーブと読み取り書き込み分離を使...

iframeを指すaタグのターゲットの名前とIDの違い

コードをコピーコードは次のとおりです。 <iframe id="myFrameId&...

MySQL の自動インクリメント主キーが連続していないのはなぜですか?

目次1. はじめに2. 自己増分ストレージの説明3つの自己付加価値修正メカニズム4. 自己評価を修正...

MySQL インストール プロンプト「詳細なヘルプについては NET HELPMSG 3534 と入力してください」の解決方法

今日、MySQL をインストールすると次のエラー メッセージが表示されます。 かなり長い時間ネットで...

Ubuntu 18.04 で中国語入力方法を設定する方法

Ubuntuの最新バージョンでは、ユーザーは中国語入力方法を別途ダウンロードする必要がなくなりました...

この記事ではCSSボーダーの使い方を説明します

境界線のスタイルborder-style プロパティは、表示する境界線の種類を指定します。 bord...

新しく作成された MySQL ユーザーの % には localhost が含まれていますか?

通常の説明%はどのクライアントでも接続できることを意味しますlocalhostはローカルコンピュータ...

Vue で eslint 検出をオフにする方法 (複数の方法)

目次1. 問題の説明2. 問題解決1. 問題の説明Vue プロジェクトを開発する場合、作成時に誤って...

Zabbix と bat スクリプトを組み合わせて複数のアプリケーションの状態を監視する方法

シナリオシミュレーション:国内企業の中には、重要な業務をサポートするために特定のウィンドウ プログラ...

Vue におけるキープアライブ マルチレベル ルーティング キャッシュの問題

目次1. 問題の説明2. 原因分析3. 解決策4. 処理1. 問題の説明調整センターでは、最後の 2...

仮想マシンクローン Linux centos6.5 システム ネットワーク カード構成グラフィック チュートリアル

Linux システムに触れたばかりの初心者として、VMware 仮想マシンに CentOS6.5 シ...

require loaderの実装原理の深い理解

序文Node は新しいプログラミング言語ではなく、JavaScript のランタイムに過ぎないとよく...

vue3 を使用してカウント関数コンポーネントのカプセル化例を実装する

目次序文1. カプセル化の重要性2. どのようにカプセル化しますか? 1. アイデア2. 準備2. ...

基礎知識: ウェブサイトのアドレスの前の http はどういう意味ですか?

HTTPとは何ですか?ウェブサイトを閲覧したいときは、ブラウザのアドレス バーにウェブサイトのアド...