zoukankan      html  css  js  c++  java
  • vue实战记录(三)- vue实现购物车功能之渲染商品列表

    vue实战,一步步实现vue购物车功能的过程记录,课程与素材来自慕课网,自己搭建了express本地服务器来请求数据

    作者:狐狸家的鱼

    本文链接:vue实战-实现购物车功能(三)

    GitHub:sueRimn

    模仿网页考拉的购物车样式进行了一些修改,以上图片就是渲染后的效果。

    一、cart.js获取数据

    通过AJAX获取本地的json数据,这里会出现跨域问题,还好提前搭建了本地服务器,可以成功获取数据渲染界面。

    当通过get获取地址数据时,可以在调试界面看到我们需要的数据有哪些,从而获取数据的id,

     

    this有可能代表不同的对象,而我们希望_this代表最初的对象,所以声明:

    let _this = this;

    而我们需要获取商品列表,所以需要把获取到的数据赋给data,然后渲染到界面。

    _this.productList = res.data.result.list;
    _this.totalMoney = res.data.totalMoney;

    完整代码:

    const vm = new Vue({
        el:'#app',
        data: {
            totalMoney: 0,//总金额
            productList: [],//商品列表
    
        },
        filters: {
    
        },
        mounted: function() {//挂载 钩子 实例插入文档
            this.cartView();
        },
        methods: {
            cartView: function() {
                let _this = this;
                //获取数据,返回结果
                this.$http.get("../data/cartData.json", {"id":123}).then(res => {
                    _this.productList = res.data.result.list;
                    _this.totalMoney = res.data.totalMoney;
                });
            }
        },
    })

    二、渲染界面

    在渲染的地方都做了相应的注释

     </div>
                    <ul class="cart-item-list">
                      <!-- 列表渲染-对象渲染 -->
                      <li v-for="(item, index) in productList" :key="index">
                        <div class="cart-tab-1">
                          <div class="cart-item-check">
                            <a href="javascript:void 0" class="item-check-btn">
                              <svg class="icon icon-ok"><use xlink:href="#icon-ok"></use></svg>
                            </a>
                          </div>
                          <div class="cart-item-pic">
                            <!-- 商品图片 -->
                            <img :src="item.productImage" alt="口红">
                          </div>
                          <div class="cart-item-title">
                            <!-- 商品名字 -->
                            <div class="item-name">{{item.productName}}</div>
                          </div>
                          <div class="item-include">
                            <dl>
                              <dt>赠送:</dt>
                              <!-- 赠品 -->
                              <dd v-for="part in item.parts" v-text="part.partsName" :key="item.id"></dd>
                            </dl>
                          </div>
                        </div>
                        <div class="cart-tab-2">
                          <!-- 商品单价 -->
                          <div class="item-price">{{item.productPrice}}</div>
                        </div>
                        <div class="cart-tab-3">
                          <div class="item-quantity">
                            <div class="select-self select-self-open">
                              <div class="quantity">
                                <a href="javascript:void 0"></a>
                                <!-- 商品数量 -->
                                <input type="text" value="0" disabled v-model="item.productQuantity">
                                <a href="javascript:void 0" @click="add">+</a>
                              </div>
                            </div>
                            <div class="item-stock">有货</div>
                          </div>
                        </div>
                        <div class="cart-tab-4">
                          <!-- 商品总金额=单价*数量 -->
                          <div class="item-price-total">{{item.productPrice*item.productQuantity}}</div>
                        </div>
                        <div class="cart-tab-5">
                          <div class="cart-item-operation">
                            <a href="javascript:void 0" class="item-edit-btn">
                              <svg class="icon icon-del"><use xlink:href="#icon-del" ></use></svg>
                            </a>
                            <p>移入我的收藏</p>
                          </div>
                        </div>
                      </li>
                    </ul>
                  </div>
  • 相关阅读:
    数据类型装换
    变量及数据类型
    27 网络通信协议 udp tcp
    26 socket简单操作
    26 socket简单操作
    14 内置函数 递归 二分法查找
    15 装饰器 开闭原则 代参装饰器 多个装饰器同一函数应用
    12 生成器和生成器函数以及各种推导式
    13 内置函数 匿名函数 eval,exec,compile
    10 函数进阶 动态传参 作用域和名称空间 函数的嵌套 全局变量
  • 原文地址:https://www.cnblogs.com/suRimn/p/10338698.html
Copyright © 2011-2022 走看看