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フロントエンドスキル概要(個人の実務経験)

推薦する

Linux には make コマンドがありません (make: *** ターゲットが指定されておらず、makefile または make コマンドのインストール方法が見つかりません)

知らせ! ! !この状況は、実際には仮想マシンのインストール中に回避できます。次回仮想マシンをテスト...

docker-compose を使用して mongodb と mysql を構築する詳細なプロセス

docker-compose で mongodb と mysql を構築する詳細な方法を見てみましょ...

ウェブページのアクセス速度に関する主な問題と解決策

<br />ウェブサイトのアクセス速度はウェブサイトのトラフィックに直接影響を及ぼし、ウ...

Apache をインストールした後、サービスを開始できません (サービスを開始するとエラー コード 1 が表示されます)

目次1. エラーメッセージ2. エラーの原因3. 解決策1. エラーメッセージ1. インストール後、...

vue3 でブロック崩しゲームを開発する方法をステップバイステップで教えます

序文vue3 を使った例をいくつか書いてみましたが、Vue3 のコンポジション API はよく設計さ...

MYSQLについては、データ型と操作テーブルを知る必要があります

データ型と操作データテーブル1.1 MySQL 型: 整数 1.2 MySQL データ型: 浮動小数...

Centos7にGitLabサーバーをインストールして展開する方法

私はここでCentOS 7 64ビットシステムを使用しています。CentOS 64ビットシステムを試...

MySQL マルチテーブル共同クエリ操作例の分析

この記事では、MySQL のマルチテーブル共同クエリ操作について説明します。ご参考までに、詳細は以下...

OpenLayers 3 のベクターマップソースの読み込みの問題を解決する

1. ベクターマップベクター グラフィックスは直線と曲線を使用してグラフィックスを表します。これらの...

Nginx操作応答ヘッダー情報の実装

前提条件: ヘッダー情報操作をサポートするには、ngx_http_headers_module モジ...

MySQL クエリのソートとクエリ集計関数の使用法の分析

この記事では、例を使用して、MySQL クエリのソート関数とクエリ集計関数の使用方法を説明します。ご...

mysql data_dirの変更によって発生するエラー問題を解決する

今日は、新しく購入した Alibaba Cloud ECS 環境 (Ubuntu 16.04 LTS...

Dockerコンテナとホスト間のデータ相互作用の概要

序文実稼働環境で Docker を使用する場合、多くの場合、データを複数のコンテナ間で永続化または共...

Typescript の as、疑問符、感嘆符の詳細な説明

1. asキーワードはアサーションを示すTypescript では、アサーションを表現する方法が 2...

IOSデータベースアップグレードデータ移行の詳細な例

IOSデータベースアップグレードデータ移行の詳細な例まとめ:昔、データベースのバージョン アップグレ...