Vue3 でタイマーコンポーネントをカプセル化する方法

Vue3 でタイマーコンポーネントをカプセル化する方法

背景

一部のショッピング モールの Web ページで商品の詳細を開くと、購入数量を選択するためのカウンターが表示されます。このようなタイマーは、商品の詳細ページだけでなく、ショッピング カートにも表示されます。タイマーをコンポーネントにカプセル化して、再利用しやすくし、後でメンテナンスしやすくすることができます。

着陸コード

<テンプレート>
  <div class="xtx-numbox">
    <div class="label"><スロット /></div>
    <div class="numbox">
      <a href="javascript:;" @click="handleSub(-1)">-</a>
      <input type="text" 読み取り専用 :value="num" />
      <a href="javascript:;" @click="handleSub(1)">+</a>
    </div>
  </div>
</テンプレート>
<スクリプト>
// 双方向バインディングを実装するためのサードパーティメソッド useVModel import { useVModel } from '@vueuse/core'
エクスポートデフォルト{
  名前: 'XtxNumbox',
  小道具: {
    モデル値: {
      タイプ: 数値、
      デフォルト: 1
    }
  },
  セットアップ(props, { 出力 }) {
    //useVModelメソッドは3つのパラメータを受け取ります。
    // パラメータ 1: カスタム プロパティ props は、v-model 双方向バインディングを通じて親コンポーネントから渡されたデータを受け取ります // パラメータ 2: props で渡されるデータ // パラメータ 3: バインドされたデータを発行するには、emit イベントを通じて親コンポーネントに通知する必要があります const num = useVModel(props, 'modelValue', emitting)
    定数handleSub = n => {
      (n < 0) の場合 {
        数値 -= 1
        (props.modelValue === 1)の場合{
          数値 = 1
        }
      } それ以外 {
        数値 += 1
      }
    }
    戻り値: { handleSub, num }
  }
}
</スクリプト>
<style スコープ lang="less">
.xtx-numbox {
  ディスプレイ: フレックス;
  アイテムの位置を中央揃えにします。
  .ラベル {
    幅: 60ピクセル;
    色: #999;
    左パディング: 10px;
  }
  .nu​​mbox {
    幅: 120ピクセル;
    高さ: 30px;
    境界線: 1px 実線 #e4e4e4;
    ディスプレイ: フレックス;
    > {
      幅: 29px;
      行の高さ: 28px;
      テキスト配置: 中央;
      背景: #f8f8f8;
      フォントサイズ: 16px;
      色: #666;
      &:最初の型 {
        右境界線: 1px 実線 #e4e4e4;
      }
      &:最後の型 {
        左境界線: 1px 実線 #e4e4e4;
      }
    }
    > 入力 {
      幅: 60ピクセル;
      パディング: 0 5px;
      テキスト配置: 中央;
      色: #666;
    }
  }
}
</スタイル>

使用

<XtxNumbox v-model="num">数量</XtxNumbox>

効果

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Vueメソッドに基づくシンプルなタイマーの実装
  • Vue-cliフレームワークはタイマーアプリケーションを実装します
  • Vueを使用してタイマー機能を実装する
  • Vue.jsはシンプルなタイマー機能を実装します
  • Vueはシンプルなタイマーコンポーネントを実装します
  • Vueタイマーの実装方法
  • Vueタイマーの詳細な使い方
  • Vueコンポーネントが破棄された後もタイマーが実行し続ける問題を解決する
  • タイマーを使用してマーキー効果を実現する Vue サンプルコード
  • vueタイマーコンポーネントの実装コード

<<:  MySQL 学習チュートリアル クラスター化インデックス

>>:  同じドメイン名を持つ Nginx プロキシのフロントエンドとバックエンドの分離プロジェクトの完全な手順

推薦する

良い広告にはどのような特徴が必要ですか?

広告業は人間であることに似ていると言う人がいます。これは本当です。優れた広告には、優れた人間と同じよ...

IE6はmin-widthを実装している

まず第一に、この効果は古い話題であるはずだということはわかっています。今日ファイルを整理していたら、...

ウェブデザイナーのための超便利なツール 50 選

ウェブデザイナーになるのは簡単ではありません。デザインやアーキテクチャを考慮するだけでなく、さまざま...

Mysql 日付クエリの詳細な紹介

現在の日付を照会する CURRENT_DATE() を選択します。 CURDATE() を選択する;...

HTML のセルパディングとセルスペース属性を図で説明します

セル - 表の内容 セルの余白 (表の余白) (cellpadding) - セルの外側の距離を表し...

シェルスクリプト nginx 自動化スクリプト

このスクリプトは、nginxの起動、停止、再起動の操作を満たすことができます。 #!/bin/bas...

Linux で大容量メモリ ページを持つ Oracle データベースを最適化する方法

序文PC サーバーは今日まで発展を続け、パフォーマンスにおいて大きな進歩を遂げてきました。 64ビッ...

HTMLテーブルではテーブルの外側の境界線のみが表示されます

質問があります。Dreamweaver で、3 行 1 列のログイン フォーム (ログイン、登録、パ...

HTML ページジャンプコード

次のコードを index.html などのデフォルトのホームページ ファイルとして保存し、ルート デ...

一般的な Dockerfile コマンドの使用方法の紹介

目次01 CM 02 エントリーポイント03 ワークディレクトリ04 環境05 ユーザー06巻07 ...

jQueryはシンプルなボタンの色の変更を実装します

HTML と CSS で、ボタンの色を設定したいとします。 目的の効果は得られますが、プロセスはかな...

LinuxシステムのAnsible自動運用保守導入方法

Ansible は、Python をベースに開発された新しい自動運用・保守ツールです。 多くの古い運...

MySQLとRedisでセカンダリキャッシュを実装する方法の詳細な説明

Redis の紹介Redis は完全にオープンソースで無料であり、BSD プロトコルに準拠しており、...

Linuxブートサービスを起動する2つの方法

目次rc.local メソッドchkconfig メソッドrc.local メソッド1 まず自動的に...

Navicat Premium15 でクラウド サーバーに接続する際のデータベースの問題と落とし穴

クラウドサーバーを使用するとデータベースに接続できる場合もありますが、Navicat Premium...