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

2018-07-29  本文已影响0人  从小就很瘦

这篇说下如何实现点击商品,显示出商品详情页面的功能。新建个组件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
上一篇下一篇

猜你喜欢

热点阅读