序文この記事では、vue3 を使用してカウント機能を実装するグローバル コンポーネントをカプセル化する方法を説明します。ショッピング サイトでよく使用される数量選択モジュールの適用シナリオは一目でわかると思います。実装方法を見てみましょう。 1. カプセル化の重要性
2. どのようにカプセル化しますか? 1. アイデアvue3 では v-model を使用して、親コンポーネントと子コンポーネント間の相互の値転送を完了します。この記事では、vueuse/core のカプセル化された useVModel を使用してこの機能を実装し、カプセル化されたパブリック コンポーネントから制御する値をスローします。 2. 準備依存関係をインストールする プロジェクトのルートディレクトリで任意のターミナルを開き、npm install @vueuse/[email protected] を実行します。 グローバルコンポーネントのカプセル化 前回の記事と同様に、vueプラグインを通じてグローバルコンポーネントとして登録します 注: この記事では、カプセル化されたグローバル コンポーネントを src/components の下に配置します。ファイルの場所と名前は自分で決めることができます。 新しいファイルmy-numbox.vueを作成します コードは次のとおりです(例): <テンプレート> <div class="my-numbox"> <div class="label"> <slot>数量</slot> </div> <div class="numbox"> <a href="javascript:;" @click="toggle(-1)" :class="{notallow: modelValue === 1}">-</a> <input type="text" 読み取り専用 :value="num"> <a href="javascript:;" @click="toggle(1)" :class="{notallow: modelValue === inventory}">+</a> </div> </div> </テンプレート> <スクリプト> '@vueuse/core' から {useVModel} をインポートします。 エクスポートデフォルト{ 名前: 'MyNumbox', 小道具: { モデル値: { タイプ: 数値、 デフォルト: 1 }, 在庫: タイプ: 数値、 必須: true } }, セットアップ(props、{emit}){ // サードパーティのメソッドによって制御されるデータの双方向バインディング const num = useVModel(props, 'modelValue', emitting) // 製品データの変更操作を制御する const Toggle = (n) => { (n < 0) の場合 { // 1つ減算する if (num.value > 1) { 数値 -= 1 } } それ以外 { // 1つの操作を追加します if (num.value < props.inventory) { 数値 += 1 } } } { num, トグル } を返す } } </スクリプト> <style スコープ lang="less"> .my-numbox { ディスプレイ: フレックス; アイテムの位置を中央揃えにします。 .notallow{ カーソル: 許可されていません。 } .ラベル { 幅: 60ピクセル; 色: #999; 左パディング: 10px; } .numbox { 幅: 120ピクセル; 高さ: 30px; 境界線: 1px 実線 #e4e4e4; ディスプレイ: フレックス; > { 幅: 29px; 行の高さ: 28px; テキスト配置: 中央; テキスト装飾: なし; 背景: #f8f8f8; フォントサイズ: 16px; 色: #666; &:最初の型 { 右境界線:1px 実線 #e4e4e4; } &:最後の型 { 左境界線:1px 実線 #e4e4e4; } } > 入力 { 幅: 60ピクセル; パディング: 0 5px; テキスト配置: 中央; 色: #666; } } } </スタイル> ここではVueプラグインを介してグローバルコンポーネントとして登録する手順は説明しません。前回の記事を読んでください。 2. 使用.vueで終わるファイルであればどこでも使えます コードは次のとおりです(例): コンポーネントタグの内容は、パブリックコンポーネントのデフォルトスロットの内容を上書きします。 在庫は在庫数量、つまりユーザーが選択できる最大値です(ここではデモンストレーション用の固定値です) <テンプレート> <div class="home-banner"> <MyNumbox v-model="num" :inventory="5">アイテム数:</MyNumbox> </div> </テンプレート> <スクリプト> 'vue' から { ref } をインポートします エクスポートデフォルト{ 名前: 'アプリ'、 設定 () { 定数num = ref(1) { 数値 } を返す } } </スクリプト> <スタイル lang="less"> .ホームバナー{ マージン: 100px 自動; 幅: 500ピクセル; 高さ: 100px; } </スタイル> 3. 効果の実証要件が満たされていることがわかります。最大値または最小値に達すると、ボタンをクリックすると無効になります。 要約するこれで、vue3 を使用してカウント関数コンポーネントのカプセル化例を実装するこの記事は終了です。vue3 カウント関数コンポーネントの関連コンテンツの詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: Nginx コンパイル済み nginx - 新しいモジュールを追加
>>: MySQL インデックスのパフォーマンス最適化の問題に対する解決策
HTML チェックボックスとラジオボタンスタイルの美化の簡単な例チェックボックス: XML/HTML...
目次配列をフラット化する方法1.flat() の使用2. 正規表現を使用する3.reduce()+c...
目次継承とプロトタイプチェーン継承されたプロパティ継承されたメソッドJavaScript でのプロト...
目次背景1) yumのkeepchche機能を有効にする: 方法1 2) yum-utils ソフト...
1. はじめに以前のプログラム アーキテクチャは次の形式になります。プログラムのサイズが大きくなると...
Ubuntu 20.04 がリリースされ、多くの新機能が導入されましたが、慣れていない機能も多くあ...
最近、アルゴリズムについて学んでいて、アルゴリズムで動く小さなゲームに出会いました。そのコードは次の...
目次1. 共有共通モジュール2. 共有マテリアルモジュール3. 共有確認ダイアログ1. 共有共通モジ...
仮想マシンを初めて使用する方や、仮想マシンに Linux をインストールしたばかりの方は、システムが...
前回の記事では、Oracle でピボット テーブルを実装するいくつかの方法を紹介しました。今日は、同...
この記事では、水平傾斜棒グラフを実装するためのVueの具体的なコードを参考までに共有します。具体的な...
目次1. ソースパッケージサービスの起動管理2. ソースパッケージサービスのセルフスタート管理3. ...
毎日のjQueryプラグイン - ステップ進捗軸 ステップ進捗軸ツール系のサイトでは入門チュートリア...
問題の背景業務システムのサーバ監視システムからディスク使用率が90%に達したという早期警告通知が来た...
序文最近mysql /usr/local/mysql/bin/mysql -uroot -pパスワー...