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 カーソルの原理と使用例の分析

この記事では、例を使用して MySQL カーソルの原理と使用方法を説明します。ご参考までに、詳細は以...

CSSの省略記号とパディングを組み合わせた場合の問題の詳細な説明

CSS によるテキストの切り捨てテキストを自動的に切り捨てるスタイル コードを実装するには、次のコー...

React Contextの理解と応用についてお話ししましょう

目次序文React Context の初見コンテキストの使い方コンテキストを直接取得できるいくつかの...

CSSは高さと幅を固定した要素の比例表示効果を実現します

padding-top パーセンテージを使用すると、固定幅と比例した高さの表示を実現できます。現在の...

Web フォームの入力要素の高度な使用例 11 選

1. ボタンが押されたときに点線のボックスをキャンセルする<br />入力に属性値hid...

Vueログイン機能の実装

目次前面に書かれたログインの概要ログインビジネスプロセスログインサービスの関連技術ポイントログイント...

ウェブデザインの発展と西洋建築の類似点は何でしょうか?

歴史は常に驚くほどうまく繰り返される。西洋建築とウェブデザインは、どちらも工学と芸術の組み合わせです...

Vueは宮殿のグリッド回転抽選を実現します

Vueは宮殿グリッド回転抽選(CrossFireのxx転生に似ている)を実装しています。参考までに、...

Nginx の純粋な構成でリアルタイム ログ レポートを実現するためのアイデアと方法

目次序文実装のアイデア実装手順1. Nginxをコンパイルする2. 設定ファイルは以下のとおりです要...

Django が uwsgi+nginx プロキシで静的リソースにアクセスできない問題の解決方法

uwsgi+nginx プロキシ Django をデプロイする場合、uwsgi を使用したアクセスは...

...

Linux でファイルプレフィックスを一括で追加する方法

フォルダー内のすべての txt ファイルのファイル名の前に「gt_」を追加する必要があります。つまり...

HTML5 と HTML4 の 10 の主な違い

HTML5 は HTML 標準の次のバージョンです。ますます多くのプログラマーが、Web サイトの構...

ubuntu14.04 に jdk1.8 をインストールするチュートリアル

1. jdkダウンロードアドレスをダウンロードする我下載的是jdk-8u221-linux-x64....

MySQLデュアルマシンホットスタンバイと負荷分散の実装手順の詳細説明

MySQL データベースには増分バックアップ メカニズムはありませんが、マスター データベース内のす...