vuex ベースのショッピングカート機能の実装

vuex ベースのショッピングカート機能の実装

この記事の例では、ショッピングカート機能を実装するためのvuexの具体的なコードを参考までに共有しています。具体的な内容は次のとおりです。

まず効果を見てみましょう:

コード:

<テンプレート>
 <div class="ホーム">
 <h1>Vuex ショッピングカートの例</h1>
 <追加元> </追加元>
 <ショップカート></ショップカート>
 </div>
</テンプレート>

<スクリプト>
'./Add.vue' から AddFrom をインポートします。
'./ShopCart.vue' から ShopCart をインポートします。
// @ は /src へのエイリアスです
// '@/components/HelloWorld.vue' から HelloWorld をインポートします
エクスポートデフォルト{
 名前: 'ホーム'、
 コンポーネント:
 追加元、
 ショッピングカート
 },

};
</スクリプト>
<スタイル>
テーブル {
 幅: 800ピクセル;
 マージン: 0 自動;
 境界線: 1px 実線 #ccc;
 境界線の間隔: 0;
}
tbody th、
tボディtd {
 境界線: 1px 実線 #ccc;
 テキスト配置: 中央;
}
h1{
 テキスト配置: 中央;
}
。追加{
 幅: 800ピクセル;
 マージン: 0 自動;
}
</スタイル>

親コンポーネント

<テンプレート>
 <div class="add">
 <div class="from-group">
 <label for="">製品番号</label>
 <input type="text" v-model="shop.id" placeholder="商品番号を入力してください">
 </div>
 <div class="from-group">
 <label for="">製品名</label>
 <input type="text" v-model="shop.name" placeholder="商品名を入力してください">
 </div>
 <div class="from-group">
 <label for="">製品価格</label>
 <input type="text" v-model="shop.price" placeholder="商品価格を入力してください">
 </div>
 <div class="from-group">
 <label for="">商品の数量</label>
 <input type="text" v-model="shop.count" placeholder="商品の数量を入力してください">
 </div>
 <div class="from-group">
 <button @click="add">商品を追加</button>
 </div>
 </div>
</テンプレート>

<スクリプト>
エクスポートデフォルト{
 名前: '追加',
 データ() {
 戻る {
 店:{}
 };
 },
 方法:{
 追加(){
 
 this.$store.dispatch("addShopList",this.shop)
 this.shop = {
 id:"",
 名前:""、
 価格:""、
 カウント:""
 }
 }
 }
};
</スクリプト>

<スタイルスコープ>
 。追加{
 幅: 800ピクセル;
 テキスト配置: 中央;
 }
</スタイル>

「バッシュ」

<テンプレート>
 <div class="ショップカート">

 <テーブル>
 <ヘッドボーダー>
 <tr>
  <th>製品番号</th>
  <th>製品名</th>
  <th>製品価格</th>
  <th>商品の数量</th>
  <th>小計</th>
  <th>オペレーション</th>
 </tr>
 </thead>
 <tbody v-if="ショップの長さ > 0">
 <tr v-for="(i, e) ショップ内" :key="e">
  <td>{{ i.id }}</td>
  <td>{{ i.name }}</td>
  <td>{{ i.price }}</td>
  <td>
  <button @click="add(e)">+</button>
  <input type="text" v-model="i.count" />
  <button @click="delet(e)">-</button>
  </td>
  <td>¥{{ i.price * i.count }}</td>
  <td><button @click="del(e)">削除</button></td>
 </tr>
 </tbody>
 <tfoot>
 <tr>
  <td colspan="6" align="right">合計: {{ total }}</td>
  <button @click="clear">ショッピングカートをクリア</button>
 </tr>
 </tfoot>
 </テーブル>
 </div>
</テンプレート>

<スクリプト>
エクスポートデフォルト{
 名前: 'Shop-Cart'、
 コンポーネント: {},
 データ() {
 戻る {};
 },
 計算: {
 店() {
 this.$store.getters.getlist を返します。
 },
 合計() {
 this.$store.getters.getShopTotal を返します。
 }
 },
 メソッド: {
 削除(e) {
 // this.$store.dispatch()
 this.$store.dispatch('remoteList', e);
 },

 追加(e) {
 this.$store.dispatch('addList', e);
 },
 削除(e) {
 this.$store.dispatch('deleteList', e);
 },

 クリア() {
 this.$store.dispatch('clearList', []);
 }
 }
};
</スクリプト>

vuex コンポーネント

'vue' から Vue をインポートします
'vuex' から Vuex をインポートします

Vue.use(Vuex)


デフォルトの新しいVuex.Storeをエクスポートします({
 州: {
 リスト: [{
 id: 1,
 名前: 「わぁ、ハハハ」
 価格: 3,
 カウント: 0
 },
 {
 id: 2,
 名前: 「わはは」、
 価格: 3,
 カウント: 0
 }
 ]
 },
 ゲッター: {
 //ショッピングカートデータを取得する getlist(state) {
 状態リストを返す
 },
 //商品の合計価格 getShopTotal(state,index) {
 結果を 0 にします。
 state.list.forEach((item, index) => {
 結果 += アイテム.価格 * アイテム.数
 })
 結果を返す
 },
 },
 突然変異:
 //ショッピングカート内の単一のデータを削除する remoteList(state,index) {
 state.list.splice(インデックス、1);
 console.log("aaa",状態)
 },
 //商品数を増やす addList(state, index) {
 state.list[インデックス].count++;
 },
 //商品数を減らす deleteList(state, index) {
 state.list[インデックス].count--;
 if(state.list[index].count<=0){
 状態.リスト[インデックス].カウント = 0
 戻る ;
 }
 },

 // ショッピングカートをクリアする clearList(state, arr) {
 状態リスト = arr
 },
 addShopList(状態、ショップ){
 state.list.push(ショップ)
 }
 },
 //アクションを使用してミューテーションメソッドを呼び出します。アクション: {
 リモートリスト({
 専念
 }、 索引) {
 commit("remoteList", インデックス)
 },
 リストを追加します({
 専念
 }、 索引) {
 コミット("addList", インデックス)
 },
 リストを削除します({
 専念
 }、 索引) {
 コミット("deleteList", インデックス)
 },
 リストをクリア({
 専念
 }, 編曲) {
 コミット("clearList", arr)
 },
 addShopList({コミット},ショップ){
 コミット("addShopList",ショップ)
 }
 },
 モジュール: {}
})

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

以下もご興味があるかもしれません:
  • Vuexはシンプルなショッピングカートを実装します
  • Vuex は小さなショッピングカート機能を実装します
  • Vuexはショッピングカートの追加、削減、削除を実装します
  • Vuex がショッピングカート機能を実現
  • vuex を使用してショッピングカート機能をエレガントに実装するサンプルコード
  • vuex で実装されたシンプルなショッピングカート機能の例
  • vuexを使用してショッピングカートH5ページのサンプルコードを作成しました
  • Vuex はシンプルなショッピングカート機能を実装します

<<:  ネイティブJavaScriptでカルーセルを実装する

>>:  Vue でシンプルな無限ループスクロールアニメーションを実装する例

推薦する

Tomcat マルチレイヤーコンテナの設計に関する簡単な説明

目次コンテナ階層サーブレットの検索を要求するプロセス仕組みTomcat のコンテナは Servlet...

Vueの7つの値転送メソッドの詳細な説明

1. 父から息子へ子コンポーネントにpropsフィールドを定義し、その型は配列です (フィールド値の...

JavaScript コンストラクタとプロトタイプの関係

目次1. コンストラクタとプロトタイプ1. コンストラクター2. コンストラクタ問題3. コンストラ...

ウェブページ上でデスクトップ exe プログラムを呼び出す簡単な方法

この記事では主に、Web ページ上でデスクトップ exe プログラムを呼び出す方法を紹介します。 W...

WIN10 システムと Docker 内部コンテナ IP 間の通信方法

1. Windows 版の Docker をインストールしたら、Docker クイックスタート ター...

CSS グリッドレイアウトで列にアイテムを埋め込む方法

n 個のアイテムがあり、これらのアイテムをグリッド レイアウトの列に並べ替える必要があるとします。列...

よく使われる Docker コマンドと例の概要と分析

目次1. コンテナライフサイクル管理(1)ドッカー実行(2)スタート/ストップ/リスタート(3)ドッ...

サーバー上で Nginx を使用して Springboot プロジェクトをデプロイする方法の詳細なチュートリアル (jar パッケージ)

1. Javaプロジェクトをjarパッケージにパッケージ化するここではMavenツールを使用します...

XHTML チュートリアル: Transitional と Strict の違い

実際、XHTML 1.0 は、Transitional DOCTYPE と Strict DOCTY...

IE6/IE7/IE8/IE9/FF 向け CSS ハック (概要)

IE8.0の正式版をインストールしたので、基本的なCSS HACKをいくつかまとめてみました。We...

CSS3アニメーションを使用して、小さい円から大きい円に拡大し、外側に広がる効果を実現する例

序文この記事では、CSS3アニメーションを使用して、円が小さいものから大きく拡大し、外側に広がる効果...

大きな MySQL テーブルに列を追加する方法

質問は https://www.zhihu.com/question/440231149 から参照さ...

NginxとLuaによるグレースケールリリースの実装

memcachedをインストールする yum インストール -y memcached #memcac...

JavaScript で Priority Queue を実装する

目次1. 優先キューの紹介2. 優先キューのカプセル化1. 優先キューの紹介通常のキューに要素が挿入...