美文网首页
8-商品详情页数据

8-商品详情页数据

作者: 谷子多 | 来源:发表于2018-03-05 23:03 被阅读0次
屏幕快照 2018-03-05 下午5.39.19.png

知识点 : query:查询字符串

分析需求:我们需要在商品页点击具体商品的时候,获取当前商品信息,才能够跳转到具体的商品页面 :所以可以用查询字符串获取当前的信息,就会拼接到地址栏上。
query:{itemId:item.sku_info[itemIndex].sku_id,地址栏会显示 : /item?itemId=100027101,问号后面的就是查询字符串。


image.png

1. 组件:商品页

商品页中 : 点击商品详情或者商品按钮,跳转到商品详情组件中。

<div class="item-cover">
        <router-link 
          //此处知识点query查询字符串,拼接商品id
          //此时地址栏的显示:http://localhost:8080/item?itemId=100027101
          :to='{name:"Item",query:{itemId:item.sku_info[itemIndex].sku_id}}'>
        </router-link>
</div>

2. 组件:views,即商品详情页,如何获取传递过来的query数据?

2-1 : 首先在商品详情页引入数据 :

 import itemsData from '@/lib/newItemsData'
 data() {
      return {
          itemsData, //将数据挂载
          itemId : this.$route.query.itemId
      }
 }

2-2 : 通过对比itemsData和itemId(即传过来的query),相同即可输出对应的数据。然后绑定到页面上。

computed: {
      itemInfo() {
        let itemInfo = this.itemsData.filter((item) => {
          return Number(item.sku_id) === Number(this.itemId) //return出来的是一个数组
        })[0]
        console.log(itemInfo)
        return itemInfo
      }
 }

2-3 :商品左侧图片切换


屏幕快照 2018-03-06 下午4.02.59.png

这类切换需求,都是统一的设置一个index变量,绑定点击事件的时候获取当前的index,然后改变index即可。

data() {
      return {
        imgIndex: 0
      }
},
methods: {
        tableImg(index){
            this.imgIndex = index
        }
}
======
<li 
  :class="{'on':index==imgIndex}"   //判断imgIndex来控制显示隐藏或切换cur
  @click="tableImg(index)"
>
</li>

2-4 :商品切换

屏幕快照 2018-03-06 下午5.23.37.png
实际上就是重新渲染这个组件,所以这几个切换颜色的按钮需要时router-link,在点击的时候获取$route.query.id,因为这个页面已经是对应的商品了,现在是切换对应商品里面的不同商品颜色(可以看数据结构就明白了)。但是查询字符串的ID一开始就已经是确认了,如何响应它的变化?就用到了watch来监控,让当前的查询字符串等于router-link上传递的查询字符串,即可对应到此条数据。
总结:此页面是通过查询字符串的ID来改变的,所以要实时获取这个ID,用watch监控。
<router-link
  :to="{name:'Item',query:{itemId:color.id}}"
  :title="color.color"
  >
   <img :src="'http://img01.smartisanos.cn/'+color.image+'20X20.jpg'">    
</router-link>
watch : {
  //当查询字符串改变的时候,将当前的值重新赋值
  '$route.query.itemId'(){
    this.itemId = this.$route.query.itemId
    this.imgIndex = 0
  }
}

2-5 加入购物车
直接调用vuex中写好的方法即可

// 点击加入购物车,直接用详情页写好的即可,这里不是data,传递的是过滤好的itemInfo
        addCarPanelHandel(){
            let itemData = {
                info : this.itemInfo,
                count : this.count  //为的是用户加了几件就计算几件
            }
            this.$store.commit('addCarPanelData',itemData)
 }

2-6 超出最大值显示弹窗

 <prompt></prompt>
// 弹窗
  import prompt from '@/components/prompt'
 components: {
      prompt  
}

总结

通过学习,我记住了一点:就会这类数据终将是要加入到购物车的,那么就是都操作的是vuex里的数据,添加购物车已经在vuex中写好,所以这里只需要去commit相应的mutation即可。
还学习到一点:可以传递对象。

addCarPanelHandel(){
            let itemData = {
                info : this.itemInfo, //当前添加的数据
                count : this.count   //数量
            }
            this.$store.commit('addCarPanelData',itemData)
}

相关文章

  • 8-商品详情页数据

    知识点 : query:查询字符串 分析需求:我们需要在商品页点击具体商品的时候,获取当前商品信息,才能够跳转到具...

  • ionic3项目实战教程 - 第8讲 ionic3商品详情页的实

    这一讲主要包含以下几个部分: 1.创建商品详情页 2.获取商品详情页的数据 3.展示商品详情页的数据 1.创建商品...

  • 爬取一页商品数据

    目标 爬取一页商品数据 不要推广商品和转转商品 在详情页获取信息(类目 | 标题 | 发帖时间 | 价格 | 成色...

  • 今合网电商干货 | 商品详情页的设计要点

    今合网电商干货 | 商品详情页的设计要点 优秀的商品详情页可以让你的商品有更好的销量。那么,该怎么设计商品详情页,...

  • Flower_gift 简单的Flutter实战app(五)

    商品详情页完成--看看效果: 商品详情页布局 商品详情页一般都是这个商城app中布局最多的一个界面,也是各种交互比...

  • iOS商品详情页面,商品属性选择功能(SKU)

    ProductDetailProject 商品详情页面,商品属性选择功能(SKU) 向上滑动到详情页面时,导航栏的...

  • 小程序——页面跳转

    场景:点击首页中的具体商品,携带商品ID跳转到商品详情页面,在详情页面获取并且展示商品详细信息。 实现步骤:以瀑布...

  • 2019-05-04 小程序购物车

    思路:定义好商品的数据,当商品详情页跳转到购物车页时。重新定义了一个新数据,用于存放挑选好的商品信息,然后在购物车...

  • 20180222 , Objc.io_KV ◊◊

     电商项目模块划分: 商品详情页, 多入口 BaseEnv模块:登录,网关,数据库,JSBridge,基础...

  • ShoppingMallApp03

    阅读原文 商品详情页面的数据传递和接收 创建数据传递 Bean 对象 传递代码 接收代码 设置文本和图片数据 使用...

网友评论

      本文标题:8-商品详情页数据

      本文链接:https://www.haomeiwen.com/subject/olghfftx.html