vuejs仿美团,饿了么项目之——商品详情篇

这篇说下如何实现点击商品,显示出商品详情页面的功能。新建个组件productDetail.vue,在good.vue中引入这个组件。这个组件中,设置个变量showDetail:false来控制显示隐藏。那么在父组件中,点击每个商品的li的时候,新建个方法,将这个商品的数据传输过去,并且通过ref让子组件显示。

    <productdetail :food="selectFood" ref="foodView"></productdetail
<div class="food-wrapper" ref="foodScroll">
            <ul>
                <li class="food-item food-list-hook" v-for="(item,index) in food" >
                    <h3>{{item.name}}</h3>
                    <div class="food-detail" v-for="list in item.detail" @click="showProductDetail(list)">
                        <div class="title">{{list.name}}</div>
                        <div class="price">{{list.price + '元'}}</div>
                        <!-- 加减号 -->
                        <div class="cartcontrol-wrapper">
                            <cartcontrol :listItem="list"></cartcontrol>    
                        </div>
                    </div>
                </li>
            </ul>
        </div>
showProductDetail(list){
                this.selectFood = list;
                this.$refs.foodView.showView()
    }

子组件中

data(){
            return {
                showDetail: false
            }
        },
        props: {
            food: {
                default: Object
            }
        },

        methods: {
            closeProductDetail(){
                this.showDetail = false
            },
            showView(){

                this.showDetail = true;
            }
        }

这样就可以实现点击哪个商品,哪个商品的详情页便显示。功能如下:


Animation.gif
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 来源:github.com Vue.js开源项目速查表:https://www.ctolib.com/cheats...
    zhangtaiwei阅读 11,668评论 1 159
  • 前段时间,我看了一部日本电影“狼之子雨与雪”。这部电影几年前就上映了,讲的是一个普通女大学生与狼人传奇的爱情故事。...
    此之木阅读 964评论 4 6
  • 窗外是大好的阴天 舒爽的凉风有些秋天的感觉 清明节前 同事们三三两两请假回家 饭点下楼的电梯都不挤了 我坐在办公室...
    朝阳区吴女士阅读 146评论 0 0
  • 亲爱的会员!11.25日的免单产品已经出炉!本周的免单产品相当给力,亲们不要错过哦! 免单,就是送你东西,完全免费...
    刹那疯阅读 482评论 0 0