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

推薦する

MySQL の 4 つのトランザクション分離レベルの詳細な説明

この実験のテスト環境: Windows 10+cmd+MySQL5.6.36+InnoDB 1. ト...

MySQL 5.6.37 (zip) ダウンロード インストール 構成 グラフィック チュートリアル

この記事では、MySQL 5.6.37のダウンロード、インストール、設定のチュートリアルを参考までに...

JavaScript の document.activeELement フォーカス要素の紹介

目次1. デフォルトの焦点はボディにあります2. テキストボックスのフォーカスを手動で取得する3. ...

Dockerでイメージをプルするための手順を完了する

1. Docker pullはイメージをプルします$ docker pull {IMAGE_NAME...

scss で mixin が動作しない問題の解決方法 (ブラウザでコンパイルできない)

ミックスインメソッド: ブラウザはコンパイルできません: 以前のバージョンのsassでは上記の記述方...

OracleデータをMySQLデータベースに抽出する実装プロセス

Oracle データベースから MySQL データベースへの移行では、Oracle データベース モ...

MySQLで判定文を書く方法のまとめ

MySQL で判断文を書く方法:方法1. CASE関数case関数の構文: CASE条件 値1の場合...

Vue を使用してパブリック アカウントの Web ページを開発する方法

目次プロジェクトの背景始めるvue-cliでプロジェクトを作成するモバイル適応についてnormali...

MybatisはSQLクエリのインターセプションと変更の詳細を実装します

序文インターセプターの機能の 1 つは、特定のメソッドの呼び出しをインターセプトできることです。イン...

CSSはインラインブロックのずれの問題を解決します

もうナンセンスじゃない、郵便番号HTML部分 <div class="positio...

Linux での MongoDB のインストールに関するチュートリアル

MongoDB はクロスプラットフォームであり、Windows と Linux の両方にインストール...

Vue で変数式セレクターを実装する方法

目次HTML構造の定義入力タグのバインディング属性入力タグはキーダウンイベントをリッスンしますli ...

MySQL テーブル構造を Excel にエクスポートする方法

要件は次のとおりですテーブル構造、フィールドコメント情報、テーブル名などをエクスポートします。これは...

泡の小さな鋭角効果を実現するCSS

効果画像(境界線の色が薄すぎるので、{} で囲みます): { }参考リンク Pure CSS バブル...

jQueryはHTML要素の非表示と表示を実装します

商品を検索するときに、すべてのブランドまたは一部のブランドを表示するTaobaoの機能を真似してみま...