Vue の共通 A​​PI と高度な API の概要

Vue の共通 A​​PI と高度な API の概要

最近、Vue3.0 を試してみたくてうずうずしていましたが、とてもいい感じです。そこで、Vue2.0 のこれらの問題をすぐに終わらせて、3.0 用のものをいくつか書きました。
この記事は主に、個人的によく使われている、または非常に便利だと思う API をいくつかリストアップして分析し、自己まとめのためのメモや議論としてまとめたものです。

次のチェック

関数:

次の Dom 更新サイクルが終了した後に遅延コールバックを追加します。データを変更した後、更新された Dom を取得できます。
使用法:

Vue.nextTick( [コールバック, コンテキスト] )
vm.$nextTick( [コールバック] )
// 使用法 2
// Promise として使用 (2.1.0 以降の新機能)
Vue.nextTick()
 .then(関数() {
  // DOMが更新されました})

例:

コールバック: 遅延コールバック関数
コンテキスト: オプションのオブジェクト
ps: 2.1.0 以降の新機能: コールバックが提供されておらず、Promise をサポートする環境の場合は、Promise が返されます。 Vue には Promise のポリフィルが付属していないため、ターゲット ブラウザーがネイティブで Promise をサポートしていない場合 (つまり、なぜみんな私を見ているのか)、ポリフィルを自分で提供する必要があることに注意してください。

拡張機能:

nextTick の実行メカニズムと使用シナリオに関しては、同様の requestAnimationFrame() と process.nextTick() も習得する必要があります。前者はブラウザの組み込みリスナー (次の再描画の前に実行される) であり、後者はノード環境の次のイベント ポーリング時点で実行されます。

ミックスイン

関数:

ミックスインを登録し、登録後に作成されるすべての Vue インスタンスに影響します。プラグイン作成者は、ミックスインを使用してコンポーネントにカスタム動作を挿入できます。
使用法:

// カスタム オプション 'myOption' のハンドラーを挿入します。
Vue.mixin({
 作成: 関数 () {
  var myOption = this.$options.myOption
  if (myOption) {
   コンソールログ(myOption)
  }
 }
})

新しいVue({
 myOption: 'こんにちは!'
})
// => "こんにちは!"

例:

オブジェクト: VM 属性またはメソッド
ps: グローバル ミックスインは、個別に作成されたすべての Vue インスタンス (サードパーティ コンポーネントを含む) に影響するため、注意して使用してください。ほとんどの場合、これは上記の例のようにカスタム オプションにのみ使用する必要があります。ミックスインの重複を避けるために、プラグインとして公開することをお勧めします。

$強制更新

関数:

Vue インスタンスを強制的に再レン​​ダリングします。
使用法:

vm.$forceUpdate()

設定、削除

関数:

レスポンシブ データのプロパティを設定および削除し、ビューの更新をトリガーします。
使用法:

// 使用法 1
Vue.set( ターゲット、キー、値 )
Vue.delete( ターゲット、キー )
// 使用法 2
vm.$set( ターゲット、キー、値 )
vm.$delete( ターゲット、キー )

例:

ターゲット: ターゲットオブジェクト
キー: 追加する属性の名前
値: 追加する属性値
ps: 主な使用シナリオでは、Vueがプロパティが削除されたことを検出できないという制限を回避できます。

フィルター

関数:

一般的なテキスト書式設定と標準的なデータ マッピングに使用されます。
使用法:

<!-- 二重中括弧内 -->
{{ メッセージ | 大文字 }}

<!-- `v-bind` 内 -->
<div v-bind:id="rawId | formatId"></div>
// フィルターを登録する: {
 大文字にする: 関数 (値) {
  if (!value) が '' を返す
  値 = value.toString()
  戻り値.charAt(0).toUpperCase() + value.slice(1)
 }
}
// グローバル登録 Vue.filter('capitalize', function (value) {
 if (!value) が '' を返す
 値 = value.toString()
 戻り値.charAt(0).toUpperCase() + value.slice(1)
})

新しいVue({
 // ...
})

例:

フィルター関数は、常に式の値 (前の演算子チェーンの結果) を最初の引数として受け取ります。
フィルターは、JavaScript 式の最後に「パイプ」記号で示されて追加する必要があります。

ps: フィルターは、{{ message | filterA('arg1', arg2) }} のように複数のパラメーターを受け入れることができます。ここで、filterA は 3 つのパラメーターを受け取るフィルター関数として定義されています。メッセージの値は最初のパラメーター、通常の文字列 'arg1' は 2 番目のパラメーター、式 arg2 の値は 3 番目のパラメーターです。

指令

関数:

カスタムディレクティブを登録するために使用されます。

使用法:

<!-- ページが読み込まれると、この要素がフォーカスを受け取ります --> 
<入力vフォーカス>
// グローバルカスタムディレクティブ `v-focus` を登録します
Vue.directive('focus', {
 // バインドされた要素が DOM に挿入されると...
 挿入: 関数 (el) {
  // 要素にフォーカス el.focus()
 }
})
// ローカルディレクティブを登録します。コンポーネントはディレクティブオプションも受け入れます。ディレクティブ: {
 集中:
  // 挿入された命令の定義: function (el) {
   el.フォーカス()
  }
 }
}

例:

挿入は登録命令の補間関数の 1 つにすぎません。完全な登録属性には次のものも含まれます。
bind: ディレクティブが最初に要素にバインドされるときに 1 回だけ呼び出され、1 回限りの初期化セットアップを実行できます。
挿入: バインドされた要素が親ノードに挿入されたときに呼び出されます (親ノードが存在することのみが保証され、必ずしもドキュメントに挿入されているわけではありません)。
update: コンポーネントの VNode が更新されたときに呼び出されますが、子 VNode が更新される前に発生することもあります。ディレクティブの値は変更されている場合と変更されていない場合がありますが、更新前と更新後の値を比較することで、不要なテンプレートの更新を無視できます。
componentUpdated: 命令が配置されているコンポーネントの VNode とその子 VNode がすべて更新された後に呼び出されます。
unbind: ディレクティブが要素からアンバインドされたときに 1 回だけ呼び出されます。

Vue.directive('my-directive', {
 バインド: 関数 () {},
 挿入: 関数 () {},
 更新: 関数 () {},
 コンポーネント更新: 関数 () {},
 アンバインド: 関数 () {}
})

その他の単純な共通プロパティとメソッド

// コンソールログ(vm.$root); 
vm.$root //インスタンスオブジェクト vm.$el //ルート要素(実際のDOM要素)
// コンソールログ(vm.$el);

vm.$el.innerHTML //ルート要素(実際のDOM要素)のコンテンツを取得します // console.log(vm.$el.innerHTML);

vm.$data //インスタンスの下のデータオブジェクト// console.log(vm.$data);

vm.$options //インスタンスの下にアイテムをマウントします// console.log(vm.$options);

vm.$props //コンポーネント間の通信用データ// console.log(vm.$props);

vm.$parent // コンポーネントでは、親要素を参照します // console.log(vm.$parent);

vm.$children // コンポーネント内で、子要素を参照します // console.log(vm.$children);

vm.$attrs //親コンポーネントから渡されたすべての属性を取得するために使用されます // console.log(vm.$attrs);

vm.$listeners //親コンポーネントから渡されたすべてのメソッドを取得するために使用されます // console.log(vm.$listeners);

vm.$slots //コンポーネント内のスロット// console.log(vm.$slots);

vm.$scopedSlots //スコープ付きスロットにアクセスするために使用されます // console.log(vm.$scopedSlots);

vm.$refs //DOM 要素を見つけるために使用 (追跡には ref を使用)
// console.log(vm.$refs);

vm.$watch //データを監視するために使用されます(vue ファイルで使用された後は自動的に破棄されます)
// コンソールログ(vm.$watch);

vm.$emit //イベントをディスパッチするために使用されます(通常はデータ通信に使用されます)
// コンソールログ(vm.$emit);

vm.$on //イベントディスパッチを監視するために使用されます// console.log(vm.$on);

vm.$once //イベントを一度だけリッスンします(その後はリッスンしません)
// コンソールログ(vm.$once);

//ライフサイクル beforeCreate() {
}
作成された() {
}
マウント前() {
}
マウント() {
}
更新前() {
}
更新された() {
}
破棄する前に() {
}
破壊された() {
}

要約する

この記事には主に、vue でよく使用されるいくつかの API が含まれています。さらに詳しく知りたい場合は、公式 Web サイトを参照してください。この記事が皆様のお役に立ち、実際のプロジェクト開発にうまく応用できることを願っています。

読みやすく理解しやすいように、この記事のコードはGithubにアップロードされています。

記事に誤りがありましたら、コメント欄でご指摘ください。役に立った場合は、いいねやフォローをお願いします。

以上がVueのよく使われるAPIと高度なAPIの詳しいまとめです。Vueのよく使われるAPIと高度なAPIについてさらに詳しく知りたい方は、123WORDPRESS.COMの関連記事もぜひご覧ください!

以下もご興味があるかもしれません:
  • axios を vue にカプセル化し、API インターフェースの統合管理を実装します。
  • Vue3.0のComposition APIの使用例
  • Vue における Axios カプセル化 API インターフェースのアイデアと方法の詳細な説明
  • vueプロジェクトはAPPとしてパッケージ化されており、静的リソースは正常に表示されますが、APIリクエストではデータ操作を実行できません。
  • Typescript を使用して Vue で Swagger API をエレガントに呼び出す方法
  • vueはグローバルアクセスインターフェースAPIアドレス操作を設定します
  • VueはバックエンドAPIに接続し、それをサーバーにデプロイします
  • Vueプロジェクトのインターフェース管理、すべてのインターフェースはapisフォルダ内で統一的に管理および操作されます
  • VUE が axios を使用してバックグラウンド API インターフェースを呼び出す方法
  • WebStormはVue3統合APIのソリューションを正しく識別できません

<<:  正規表現に基づくあいまい文字列置換を実装するMySQLの方法の分析

>>:  userdel コマンドを使用して Linux ユーザーを削除する方法の詳細なチュートリアル

推薦する

MySQL Limitパフォーマンス最適化とページングデータパフォーマンス最適化の詳細な説明

MySQL Limit はセグメント内のデータベース データをクエリでき、主にページングで使用されま...

MySQL 構成マスタースレーブサーバー (マスター 1 台とスレーブ複数台)

目次アイデアホスト構成confを変更する再起動テストスレーブ 1 の構成スレーブ2の構成マスターとス...

vue+canvasでタイムラインを描く方法

この記事では、参考までにvueキャンバスのタイムライン描画の具体的なコードを紹介します。具体的な内容...

HTMLヘッダータグの使用に関する詳細な説明

HTMLはヘッドとボディの2つの部分で構成されています** ヘッド内のタグはヘッドタグです** タイ...

Nginx リバース プロキシと負荷分散を実装する方法 (Linux ベース)

ここで nginx のリバース プロキシを試してみましょう。リバースプロキシ方式とは、インターネット...

Nginx 経由で Tomcat9 クラスターを構築し、セッション共有を実現する

Nginx を使用して Tomcat9 クラスターを構築し、Redis を使用してセッション共有を実...

Linux環境でよく使われるMySQLコマンドの紹介

mysql コマンドを入力します: mysql -u+(ユーザー名) -p+(パスワード) mysq...

VirtualBox Centos7 の NAT+ホストオンリーネットワークの落とし穴のまとめ

目次1. 問題の背景2. 仮想マシン ネットワーク カードの接続方法は何ですか? 2.1 NAT 2...

MySQL マルチテーブルクエリ例の詳しい解説 [リンククエリ、サブクエリなど]

この記事では、例を挙げて MySQL のマルチテーブル クエリについて説明します。ご参考までに、詳細...

Linuxシステムはポート3306、8080などを外部に開放します。ファイアウォール設定の詳しい説明

多くの場合、Linux システムに Web サービス アプリケーション (Tomcat、Apache...

Linux でショートカットアイコンを設定する方法

序文Linux でショートカットを作成すると、アプリケーションをより速く開くことができます。ここで、...

MySQL ログの設定と表示方法

MySQL には次のログがあります。エラーログ: -log-errクエリログ: -logスロークエリ...

廃止された Docker は Podman に置き換えられますか?

Kubernetes チームは最近、最新バージョンの Docker でサポートされている機能を廃止...