この記事の例では、書籍ショッピングカート機能を実現するためのVueの具体的なコードを参考までに共有しています。具体的な内容は次のとおりです。 レンダリングクリックすると購入数量を増やしたり減らしたり削除したりして合計金額が変わります コード<!DOCTYPE html> <html lang="ja"> <ヘッド> <メタ文字セット="UTF-8"> <meta http-equiv="X-UA-compatible" content="IE=edge"> <meta name="viewport" content="width=デバイス幅、初期スケール=1.0"> <title>書籍ショッピングカート</title> <スタイル> テーブル{ 境界線: 1px 実線 #e9e9e9; 境界線の折りたたみ: 折りたたみ; 境界線の間隔: 0; } th、td{ パディング: 8px 16px; 境界線: 1px 実線 #e9e9e9; テキスト配置: 左; } th{ 背景色: #f7f7f7; 色: #5c6b77; フォントの太さ: 600; } </スタイル> </head> <本文> <div id="app" v-cloak> <div v-if="本の長さ"> <テーブル> <頭> <tr> <番目></番目> <th>書籍名</th> <th>発行日</th> <th>価格</th> <th>購入数量</th> <th>オペレーション</th> </tr> </thead> <t本文> <tr v-for="(item, index) 書籍内"> <td>{{インデックス+1}}</td> <td>{{アイテム名}}</td> <td>{{item.date}}</td> <td>{{item.price | 表示価格}}</td> <td> <!-- ボタンが無効になっている場合は disabled が true になります --> <button @click="reduce(index)" v-bind:disabled="item.count <= 1">-</button> {{item.count}} <button @click="増加(インデックス)">+</button> </td> <td><button @click="remove(index)">削除</button></td> </tr> </tbody> </テーブル> <h2>合計金額: {{totalPrice | showPrice}}</h2> </div> <h2 v-else>ショッピングカートは空です</h2> </div> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> <スクリプト> constアプリ = 新しいVue({ el: "#app", データ:{ 書籍: { 名称:「アルゴリズム入門」 日付: '2021-8-1', 価格: 85.00、 カウント: 1 }, { 題名: 『UNIXプログラミングの芸術』 日付: '2021-8-2', 価格: 69.00、 カウント: 1 }, { 名前: 「プログラミングパール」 日付: '2021-8-3', 価格: 35.00、 カウント: 1 }, { タイトル: 「DOMプログラミングの芸術」 日付: '2021-8-4', 価格: 75.00、 カウント: 1 }, { 名前: 「Nodejs をシンプルに解説」 日付: '2021-8-5', 価格: 105.00、 カウント: 1 }, ]、 }, 方法:{ 減らす(インデックス){ this.books[インデックス].count--; }, 増加(インデックス){ this.books[インデックス].count++; }, 削除(インデックス){ this.books.splice(インデックス、1); }, }, 計算:{ // 計算属性に記述されたメソッドは、属性 totalPrice(){ として直接使用できます。 //totalPrice = 0 とします。 // 1. 通常の for ループ // for (let i = 0; i < this.books.length; i++) { // 合計価格 += this.books[i].count * this.books[i].price; // } // 2. よりシンプルなステップの通常の for ループ // for (let i in this.books) { // 合計価格 += this.books[i].count * this.books[i].price; // } // 3. for(let item of this.books) //for(let item of this.books){ // 合計価格 += アイテム数 * アイテム価格; // //totalPrice を返します。 // 4. 高階関数の記述reduce // 変数を定義したり走査したりせずに結果を直接返します return this.books.reduce(function(pre, book){ pre + book.price * book.count を返します。 },0); }, // フィルター:{ 価格を表示(価格){ "¥" + price.toFixed(2) を返します。 } } }) </スクリプト> </本文> </html> 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: マテリアルデザインで水滴アニメーションボタンを実現するための純粋なCSS
目次序文事例: JD.com の虫眼鏡効果の模倣オフセットシリーズクライアントシリーズスクロールシリ...
<br />これは、Steven D が書いた Web フロントエンド開発デザインの基本...
CSS3お願いしますこのウェブサイトを自分で見て、パラメータを変更し、CSS3効果をオン/オフにする...
今日は、タブ バーをクリックして切り替えるという目的を実現するために、js と jQuery を使用...
1. コマンドの紹介chkconfig コマンドは、システム サービスの実行レベル情報を更新および照...
インターネット上には、正しい方法であっても、使用しても正しい結果が得られない方法が数多くあります。正...
フォームを作成するときに、送信ボタンとリセットボタンを配置することがよくあります。ページの外観を考慮...
目次序文1. 不明 vs 任意2. 未知とあらゆるもののメンタルモデル3. まとめ要約する序文any...
目次1. Reduxを選ぶ理由2. Reduxデータフロー3つの原則4. Reduxソースコード分析...
私はしばらくの間チャートをいじっていましたが、好奇心から、CSS を使用してチャートを作成するより良...
この記事の例では、記事の折りたたみと展開の機能を実現するためのjQueryの具体的なコードを参考まで...
bitronix を使用して MySQL に接続するときの MySQLSyntaxErrorExce...
この記事の例では、参考までに簡単な計算機を実装するためのJavaScriptの具体的なコードを共有し...
この記事は51CTOブログの著者wjw555の作品を参照しています。スクリプトの内容: vim イン...
目次1. ツールの紹介2. ワークフロー3. 操作インターフェースとパラメータ設定(1)監視と再起動...