Vueはシンプルなショッピングカートの例を実装します

Vueはシンプルなショッピングカートの例を実装します

この記事では、Vueの具体的なコードを共有して、簡単なショッピングカートを実装します。具体的な内容は次のとおりです。

まずは完成した効果を見てみましょう。

CSS部分

ここでは特に言うことはありません。Vクロークの知識ポイントだけです。

テーブル{
  境界線: 1px 実線 #e9e9e9;
  境界線の折りたたみ: 折りたたみ;
  境界線の間隔: 0;
}
th、td{
  パディング: 8px 16px;
  境界線: 1px 実線 #e9e9e9;
  テキスト配置: 中央;
}
th{
  背景色: #f7f7f7;
  色: #5c6b77;
  フォントの太さ: 600;
}
[v-マント]{
  表示: なし;
}

HTML部分

使用される Vue の知識ポイントをいくつか示します。

  • v-if
  • v-for
  • Vクローク
  • v-on > @
  • v-bind > :
  • 方法
  • 計算された
  • フィルター
<!DOCTYPE html>
<html lang="ja">
<ヘッド>
  <メタ文字セット="UTF-8">
  <meta name="viewport" content="width=デバイス幅、初期スケール=1.0">
  <title>ショッピングカート</title>
  <link rel="スタイルシート" href="style.css" >
</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) 書籍内">
            <th>{{item.id}}</th>
            <th>{{アイテム名}}</th>
            <th>{{item.date}}</th>
            <!--ソリューション 1 では小数点と通貨記号が保持されます-->
            <!-- <th>{{"¥"+item.price.toFixed(2)}}</th> -->
            <!--解決策 2-->
            <!-- <th>{{getFinalPrice(item.price)}}</th> -->
            <!--スキーム 3-->
            <th>{{item.price | 表示価格}}</th>
            <番目>
              <button @click="decrement(index)" :disabled="item.count<=0">-</button>
              {{item.count}}
              <button @click="increment(index)">+</button>
            </th>
            <th><button @click="removeHandle(index)">削除</button></th>
          </tr>
        </tbody>
      </テーブル>
      <h2>合計価格:{{totalPrice | showPrice}}</h2>
    </div>
    <h2 v-else>
      ショッピングカートは空です</h2>
  </div>

</本文>
<script src="../js/vue.js"></script>
<script src="main.js"></script>
</html>

JS部分

constアプリ = 新しいVue({
  el:"#アプリ",
  データ:{
    書籍:
      {
        id:1,
        名前:"アルゴリズム入門",
        日付:'2006-9'、
        価格:85.00、
        カウント:1
      },
      {
        id:2,
        名前:"UNIXプログラミングの芸術",
        日付:'2006-2',
        価格:50.00、
        カウント:1
      },
      {
        id:3,
        名前:"プログラミングの芸術",
        日付:'2008-10'、
        価格:39.00、
        カウント:1
      },
      {
        id:4,
        名前:"《コード百科事典》",
        日付:'2006-3',
        価格:128.00、
        カウント:1
      },
      
    ]
  },
  メソッド: {
   //ここでは、メソッド形式を使用して合計価格を計算することをあきらめ、より効率的な計算プロパティを代わりに使用します。
    // getFinalPrice(価格){
    // "¥"+price.toFixed(2) を返す
    // },
    増分(インデックス){
      this.books[インデックス].count++
    },
    減算(インデックス){
      this.books[index].count--
    },
    ハンドルを削除します(インデックス){
      this.books.splice(インデックス、1);
    }

  },
  計算: {
    合計価格(){
      // オプション 1: 通常の for ループ // let totalPrice = 0;
      // for(let i=0;i<this.books.length;i++){
      // 合計価格 += this.books[i].price * this.books[i].count
      // }
      // 合計価格を返す

      // 解決策 2: for in
      // totalPrice を 0 とします。
      // for(let i in this.books){
      // // コンソール.log(i);//1 2 3 4
      // 合計価格 += this.books[i].price * this.books[i].count
      // }
      // 合計価格を返す

      // オプション 3: for の
      // totalPrice を 0 とします。
      // for(let item of this.books){
      // // console.log(item);//ここで取得するのは配列内の各オブジェクトです// totalPrice += item.price * item.count
      // }
      // 合計価格を返す

      // 解決策4: 削減
      this.books.reduce(function (preValue, book) を返す {
        // console.log(book); // それぞれ 4 つのオブジェクトを出力します。 return preValue + book.price * book.count
      }, 0)
    }
  },
  // フィルター:{
    価格を表示(価格){
      "¥"+price.toFixed(2)を返す
    }
  }
})

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

以下もご興味があるかもしれません:
  • Vuejsは、完全なショッピングカートのサンプルコードを書く方法を段階的に教えてくれます
  • Vuejs ベースのショッピングカート機能の実装
  • Vueはショッピングカート機能を実装します
  • Vueはショッピングカートの小さなケースを実装します
  • Vueはショッピングモールのショッピングカート機能を実現
  • vuex で実装されたシンプルなショッピングカート機能の例
  • Vue はショッピングカートの合計価格計算を実現します
  • vue+vant-UIフレームワークは、ショッピングカートのチェックボックスの選択と選択解除機能を実現します。
  • Vuejsはショッピングカート機能を実装します
  • Vue.jsで実装したショッピングカート機能の詳しい説明

<<:  MySQL 8.0.12 インストール グラフィック チュートリアル

>>:  Linux でテキストから改行文字を削除する方法

推薦する

aタグ疑似クラスの機能と記述順序は何ですか?

a タグ疑似クラスの役割: 「:link」: 訪問されていないタグの状態。 「:visited」: ...

MySQL 演算子の具体的な使用法 (and、or、in、not)

目次1. はじめに2. 本文2.1 および演算子2.2 または演算子2.3 オペレーター2.4 no...

Dockerイメージの圧縮と最適化操作

Docker が今日非常に人気がある理由は、主にその軽量性、迅速な展開、およびリソースの利用にありま...

MySQL countの詳細な説明と関数のサンプルコード

mysql countの詳細な説明count関数はテーブルや配列内のレコードを数えるために使われます...

mysql 結合クエリ (左結合、右結合、内部結合)

1. MySQLの一般的な接続INNER JOIN (内部結合、または等価結合): 2 つのテーブ...

MySQLが数十億のトラフィックをサポートする方法

目次1 マスター・スレーブの読み取り・書き込み分離1.1 コア2 マスタースレーブレプリケーション2...

Vueで配列の変更を監視する方法

目次序文ソースコード学習の第一歩はどこから始めればよいでしょうか?写真から始めましょうソースコードを...

Docker ベースの Jenkins のデプロイに関する詳細なチュートリアル

このドキュメントを作成した当時は2019年12月頃で、er2.200が最新バージョンでした。 1.画...

nofollowタグの使用と分析に関する簡単な説明

nofollowをめぐる論争Zac と Guoping の間では、nofollow が PR を無駄...

Navicat でストアド プロシージャ、トリガーを作成し、カーソルを使用する簡単な例 (画像とテキスト)

1. テーブルを作成する<br /> まず、2 つのテーブル (users テーブルと...

Vueプロジェクトでlessを使用するためのヒント

目次序文1. スタイルの浸透1. パターン浸透とは何ですか? 2. 使い方は? 2. ミキシング1....

Dockerはelasticsearchイメージを起動し、ディレクトリをマウントした後にエラーを解決します

docker hub から es イメージ (バージョン 6.4.2) をダウンロードしました。詳細...

Linux ダイナミックライブラリの生成と使用ガイドの詳細な説明

Linux での動的ライブラリ ファイルのファイル名は libxxx.so のようになります。ここで...

Centos7 で NIS を構成する詳細な手順

目次原理ネットワーク環境の準備インストール前の準備NIS サーバー操作NIS クライアント操作原理N...

fastdfs+nginxクラスタ構築の実装

1. fastdfs の紹介1. fastdfsとは何かFastdfs は軽量のオープンソース分散フ...