Vue3.0でカスタム命令を書くための簡単な手順

Vue3.0でカスタム命令を書くための簡単な手順

序文

Vue には、v-if、v-bind、v-on などの豊富な組み込みディレクティブが用意されています。さらに、Vue.directive({}) または directives:{} を通じてディレクティブを定義することもできます。

学習を始める前に、カスタム命令の適用シナリオを理解する必要があります。あらゆる機能の開発は、特定の問題を解決することです。

カスタム命令を使用すると、DOM に対してより低レベルの操作を実行できます。これにより、いくつかのシナリオで問題を迅速に解決するためのアイデアが得られるだけでなく、基礎となる Vue をさらに理解できるようになります。

最初のステップ

main.js内

srcの下の履歴書に対応するフォルダ

import Directives from "@/Directives/index"; // カスタムディレクティブ (@ は src を表します)
const app = createApp(App);
app.use(ディレクティブ);
app.mount("#app");

ステップ2

import copy from "./copy"; // 必要な命令をインポートする const directivesList = {
  コピー // マウント};

constディレクティブ = {
  インストール: 関数 (アプリ) {
    Object.keys(directivesList).forEach((key) => {
      app.directive(key, directivesList[key]); // 登録 });
  }
};

デフォルトのディレクティブをエクスポートします。 // 例外

ステップ3

ディレクティブの内容をcopy.jsに記述します。Vue2とVue3はライフサイクル関数の一部のみを変更します。

「element-plus」から ElMessage をインポートします。
定数コピー = {
  マウントされた(el、{値}){
    el.$value = 値;
    el.ハンドラ = () => {
      if (!el.$value) {
        // 値が空の場合はプロンプトを表示します ElMessage.warning({
          メッセージ: "こんにちは、コピーされた値は空にできません。",
          タイプ: 「警告」
        });
        戻る;
      }
      if (window.clipboardData) {
        window.clipboardData.setData("テキスト", el.$value);
      } それ以外 {
        (関数 (コンテンツ) {
          document.oncopy = 関数 (e) {
            e.clipboardData.setData("テキスト", コンテンツ);
            e.preventDefault();
            ドキュメント.oncopy = null;
          };
        })(el.$値);
        document.execCommand("コピー");
      }

      ElMessage.success("コピーが成功しました");
    };
    // クリック イベントをバインドします el.addEventListener("click", el.handler);
  },
  beforeUpdate (el, {
    価値
  }) {
    el.$value = 値;
  },
  アンマウント(el){
    el.removeEventListener("click", el.handler);
  }
};

デフォルトのコピーをエクスポートします。

要約する

Vue3.0 のカスタム命令の書き方に関するこの記事はこれで終わりです。Vue3.0 のカスタム命令に関するより詳しい情報は、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続きご覧ください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Vue3.0 カスタム命令(命令)知識の要約
  • vue3 カスタムディレクティブの詳細
  • Vue3命令がどのように実装されているかを説明する記事

<<:  Tomcat9 Windows サービスのインストールに関する詳細なチュートリアル

>>:  SQLインジェクションの詳しい解説 - セキュリティ編(第2部)

推薦する

iframe を更新する 3 つの方法

コードをコピーコードは次のとおりです。 <iframe src="1.htm&quo...

MySQL で重複レコードをクエリして削除する方法の完全なガイド

序文この記事では主に、MySQL で重複レコードをクエリして削除する方法を紹介します。参考と学習のた...

MySQL 検査スクリプト (必読)

以下のように表示されます。 #!/usr/bin/env python3.5 psutilをインポー...

VMware 仮想マシン ブリッジ モードでインターネットにアクセスできない問題を解決する方法

ステップ1: ローカルイーサネットプロパティをチェックして、VMwareブリッジプロトコルがインスト...

Vue フロントエンドと Django バックエンドを使用して、一定期間内のデータをクエリする方法

序文開発プロセスでは、すべてのデータではなく特定の期間内のデータをクエリするなど、クエリのフィルタリ...

Vueは、選択した月に応じて日付に対応する曜日を動的に表示します。

私たち謙虚なプログラマーは、今でもこう歌わなければなりません。「あなたも私も、この世に生まれて、一日...

Ubuntu 18.04 (物理マシン) で OpenWRT 開発環境を構成する方法

1. 仮想マシン(物理マシン)をインストールする仮想マシンまたは物理マシンにインストールできます。 ...

Reactの状態管理の3つのルールのまとめ

目次序文No.1 焦点No.2 複雑な状態ロジックの抽出No.3 複数状態操作の抽出要約する序文Re...

MySQL のデータ型とフィールド属性の原理と使用法の詳細な説明

この記事では、MySQL のデータ型とフィールド属性について説明します。ご参考までに、詳細は以下の通...

JS 面接の質問: forEach はループから抜け出すことができますか?

この質問をされたとき、私は無知で頭が真っ白になりました。もちろん、正しく答えられませんでした。私はず...

ミニプログラムは、カスタムのマルチレベル単一選択と複数選択を実装します

この記事では、参考のために、ミニプログラムでカスタムのマルチレベル単一選択および複数選択機能を実装す...

Centos7 に DAMO データベースをインストールするチュートリアル

1. 準備Linux オペレーティング システムをインストールした後、ここで Linux 7 を選択...

Linuxのファイルとフォルダの権限を操作する方法

Linux のファイル権限まず、現在のディレクトリ内のファイルの内容を確認しましょう。 ls -l ...

Mysqlのマージ結果と水平スプライシングフィールドの実装手順

序文最近、レポート機能に取り組んでいたのですが、ある月に各部署に入社した人と退職した人の数をカウント...