Vue实现仿淘宝商品详情属性选择的功能

先看下效果图:(同个属性内部单选,属性与属性之间可以多选)

主要实现过程:

所使用到的数据类型是(一个大数组里面嵌套了另一个数组)具体格式如下:

  1.  
    attrAndValuees: [
  2.  
    {
  3.  
    'attrId': 1,
  4.  
    'attrName': '味道',
  5.  
    'valuees': [
  6.  
    {
  7.  
    'attrId': 1,
  8.  
    'value': '橘子味'
  9.  
    },
  10.  
    {
  11.  
    'attrId': 2,
  12.  
    'value': '草莓味'
  13.  
    }
  14.  
    ]
  15.  
    },
  16.  
    {
  17.  
    'attrId': 2,
  18.  
    'attrName': '容量',
  19.  
    'valuees': [
  20.  
    {
  21.  
    'attrId': 4,
  22.  
    'value': '100ml'
  23.  
    },
  24.  
    {
  25.  
    'attrId': 6,
  26.  
    'value': '300ml'
  27.  
    }
  28.  
    ]
  29.  
    }]

相关的Html 代码:

  1.  
    <div class="sortItem" v-for="(item,index) in attrAndValuees" :key="item.attrId">
  2.  
    <span>{{item.attrName}}:</span>
  3.  
    <ul>
  4.  
    <li v-for="(itemm,ind) in item.valuees" :key="itemm.attrId" :class="{'cur':sel[index] == ind}" @click="select(index,ind)" class="hand" >{{itemm.value}}</li>
  5.  
    </ul>
  6.  
    </div>

实现的原理:新建一个数组,数组的每一项代表一个属性值,由这个数组中的值来改变对应属性的样式

在data里新增一个数组 :

  1.  
    data () {
  2.  
    return {
  3.  
    sel: []
  4.  
    }
在methods中新增一个select方法,在点击属性值的时候调用
  1.  
    select: function (index, ind) {
  2.  
    this.sel[index] = ind;
  3.  
    this.$set(this.sel, index, ind)
  4.  
    // this.sel = this.sel.concat([]);
  5.  
     
  6.  
    }

就以上几个小步骤就可以实现这个效果了,是不是so easy~

不过这中间需要注意的有几点:

Vue之所以能够监听Model状态的变化,是因为JavaScript语言本身提供了Proxy或者Object.observe()机制来监听对象状态的变化。但是,对于数组元素的赋值,却没有办法直接监听,因此,在这个项目中我们用了set的方法来给数组赋值或者用concat连接一个空数组来对数组进行重新赋值。

若你想了解更多关于数组赋值的知识,可访问官网:https://cn.vuejs.org/v2/guide/list.html

Vue实现仿淘宝商品详情属性选择的功能的更多相关文章

  1. 仿淘宝商品详情页上拉弹出新ViewController

    新项目就要开始做了,里面有购物那块,就试着先把淘宝商品详情页的效果做了一下. 1.需求 1.第一次上拉时,A视图拉到一定距离将视图B从底部弹出,A视图也向上 2.显示B视图时下拉时,有刷新效果,之后将 ...

  2. 第十二篇、OC_仿淘宝商品详情页的翻页

    // // GFBProductViewController.m // elmsc // // Created by MAC on 2016/11/26. // Copyright © 2016年 G ...

  3. iOS app url scheme跳转到淘宝商品详情页 唤醒app

    最近涉及的一个业务,在app内的一个广告,点击打开webView,加载的是一个淘宝商品详情页,效果是打开该webView自动跳转至淘宝对应的页面,同时在自己的app仍然加载页面,点击评论等也同样能跳转 ...

  4. android电子书App、自定义图表、仿腾讯漫画App、仿淘宝优惠券、3D选择容器等源码

    Android精选源码 仿支付宝记账本功能,饼状图:数字键盘 android一款功能完善的电子书应用源码 Android自定义图标库,使用方便,扩展性强 android 3D立体无限旋转容器源码 an ...

  5. Android开发案例 - 淘宝商品详情

    所有电商APP的商品详情页面几乎都是和淘宝的一模一样(见下图): 采用上下分页的模式 商品基本参数 & 选购参数在上页展示 商品图文详情等其他信息放在下页展示 知识要点 垂直方向的ViewPa ...

  6. Android自己定义控件实战——仿淘宝商品浏览界面

    转载请声明出处http://blog.csdn.net/zhongkejingwang/article/details/38656929 用手机淘宝浏览商品详情时,商品图片是放在后面的,在第一个Scr ...

  7. vue实现仿淘宝结账页面

    这个demo,是小颖基于之前的 vue2.0在table中实现全选和反选   文章进行更新后的demo,主要功能呢,是仿照淘宝页面的结算购物车商品时自动算出合计价格的页面,具体页面效果请看下面的动图: ...

  8. Android自定义控件实战——仿淘宝商品浏览界面

    转载请声明出处http://blog.csdn.net/zhongkejingwang/article/details/38656929 用手机淘宝浏览商品详情时,商品图片是放在后面的,在第一个Scr ...

  9. Android开发案例 - 淘宝商品详情【转】

    http://erehmi.cnblogs.com/ 所有电商APP的商品详情页面几乎都是和淘宝的一模一样(见下图): 采用上下分页的模式 商品基本参数 & 选购参数在上页展示 商品图文详情等 ...

随机推荐

  1. asp.net 错误 类型"xxxxx"同时存在于"xxx.dll"和"xxxx.dll" 中

    http://walttoney.blog.163.com/blog/static/127685797201051112839328/错误 类型“System.Web.UI.ScriptManager ...

  2. uva 1426 离散平方根

    1426 - Discrete Square Roots Time limit: 3.000 seconds A square root of a number x <tex2html_verb ...

  3. STL中heap用法

    #include<cstdio> #include<iostream> #include<algorithm> using namespace std; ]={,, ...

  4. 洛谷 [P3834] 可持久化线段树(主席树)

    主席树可以存储线段树的历史状态,空间消耗很大,一般开45n即可 #include <iostream> #include <cstdio> #include <cstri ...

  5. ZOJ 3306 状压dp

    转自:http://blog.csdn.net/a497406594/article/details/38442893 Kill the Monsters Time Limit: 7 Seconds ...

  6. Day 1 计算机基础

    计算机基础 一.为什么学习计算机基础? 编程语言的作用:人类使机器明白并动作的指令.类似:人文社会的英语.   关系:计算机硬件 —— 操作系统(OS) —— 软件(编程语言成品,学习成果). 自语: ...

  7. hdu 4885 (n^2*log(n)判断三点共线建图)+最短路

    题意:车从起点出发,每次只能行驶L长度,必需加油到满,每次只能去加油站或目的地方向,路过加油站就必需进去加油,问最小要路过几次加油站. 开始时候直接建图,在范围内就有边1.跑最短了,再读题后发现,若几 ...

  8. MVC模式(三层架构模式)

    (Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控制器(Controller). MVC模式最早由Try ...

  9. sugar与阿龙的互怼(第一季)

    §   第一季 回家风波 高考了,啦啦啦~ 快要高考了,显然sugar很伤心. 显然不是因为快要考试了sugar才伤心的. 那为什么??? 因为他们都回家了,但是sugar和他的小伙伴们都不回家!!! ...

  10. 【kotlin】long转化为date类型 或者date字符串

    1.方法体中的 package org.joda.time.DateTime(long类型) fun Long?.toDateTime() = if (null != this) DateTime(t ...