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部)

推薦する

IE5.0以降のHTCコンポーネントの定義の概要

Microsoft IE 5.0 がリリースされる前は、Web プログラミングにおける最大の課題は、...

Linux は n 日前のログとサンプルコマンドを自動的に削除します

1. ファイル削除コマンド:対応するディレクトリを検索します -mtime + 日数 -name &...

Bash スクリプトでの配列メソッドの作成と使用の概要

Bashで配列を定義するbash スクリプトで新しい配列を作成する方法は 2 つあります。 1 つ目...

ECMAScript6 におけるマップマッピングの基本概念と一般的な方法

目次マッピングとは何かオブジェクトとマップの違いマップの共通メソッド宣言と初期化割り当てセットキー値...

ウェブ開発におけるクロスドメインの理由に対する複数のソリューション

目次クロスドメインの理由JSONP Nginxソリューションバックエンドソリューションクロスドメイン...

MySQL InnoDB テーブルスペース暗号化の例の詳細な説明

序文MySQL 5.7.11 以降、MySQL は、別の表領域に格納された InnoDB テーブルの...

JavaScript ツールチェーンの不完全なガイド

目次概要静的型チェックコードスタイルチェック(Linter)パッケージマネージャーモジュールローダー...

jQuery を使用して、iframe 下の無効なページ アンカー ポイントの問題を修正する

適用シナリオ: iframe ページにスクロール バーがなく、親ウィンドウにスクロール バーが表示さ...

CSS floatプロパティの詳細な説明

1. フローティングとは何ですか?フローティングは、その名の通り、浮遊することを意味します。要素がド...

各グループの最新データを取得するためにMySQLベースのグループを実装する

序文:グループ化関数はグループ内の最初のデータを取得しますが、各グループ内の最新のデータを取得する必...

Vue の要素カレンダー コンポーネントを使用したサンプル コード

まず効果図を見てみましょう: 完全なコードは添付されています <テンプレート> <...

ウェブサイトのデザインを改善するための役立つ提案を提供します

<br />ウェブサイトを科学的にデザインする: アイトラッキング研究から学ぶ 23 の...

VMware12 で Ubuntu19.04 デスクトップ版をインストールする (インストール チュートリアル)

1. 実験の説明仮想マシンに、 Ubuntu 19.04オペレーティングシステムを手動でインストー...

VMware vSphere 6.7 (ESXI 6.7) のグラフィック インストール手順

環境: VMware VCSA 6.7 (VMware-VCSA-all-6.7.0-8169922...

Webpack パッケージング CSS 背景画像パスの問題に対する完璧なソリューション

vue コンポーネントのスタイル タグ内には、背景画像を使用する次の CSS コードがあります。 背...