Vue实现商品详情页的评价列表功能


Posted in Javascript onSeptember 04, 2019

本篇我们来实现商品详情页的评价列表。

Vue实现商品详情页的评价列表功能 

必要的数据

这里咱们举一个数据的例子,明明白白地了解这些数据是如何绑定到模板中的。

数据来自于Foods父组件,当我们选中商品,跳转到商品详情页,那么就需要依赖父组件中的商品数据,在商品详情页面展示评论,当然也可能没有如下“rating”数据。那我们在后面的模板中,就不展示对应的html结构。

{
            "id": 96985579,
            "name": "麦辣鸡翅2块",
            "min_price": 11,
            "praise_num": 22,
            "praise_content": "赞22",
            "tread_num": 0,
            "praise_num_new": 22,
            "unit": "例",
            "description": "",
            "picture": "http://p0.meituan.net/xianfu/38bbfa3f955cbce3330f1cb6818d0ce6216794.png.webp",
            "month_saled": 948,
            "month_saled_content": "月售948",
            "status": 3,
            "status_description": "非可售时间",
            "product_label_picture": "http://p1.meituan.net/aichequan/04789347d755465713550540942265d36475.png",
            "rating": {
              "comment_count": 4,
              "title": "外卖评价",
              "snd_title": "4条评论",
              "praise_friends": "",
              "like_ratio_desc": "好评度",
              "like_ratio": "100%",
              "filter_type": 1,
              "comment_list": [
                {
                  "user_icon": "https://img.meituan.net/avatar/71ef89fa000e783d5b8d86c2767a9d28195580.jpg",
                  "user_name": "ejX309524666",
                  "comment_time": "2017.08.31",
                  "comment_unix_time": 1504161290,
                  "comment_content": "#奶油坚果酱中套餐#不好吃。还是奥尔良,麦辣鸡腿那些最经典的汉堡好吃。薯条软得不能再软了。我备注了可乐换芬达也没有换。#麦辣鸡翅2块#就还好,里面的肉挺嫩的,很入味。"
                }, {
                  "user_icon": "https://img.meituan.net/avatar/6571c42526237b0118f437418e989d1187445.jpg",
                  "user_name": "EAG789830055",
                  "comment_time": "2017.08.18",
                  "comment_unix_time": 1503030166,
                  "comment_content": "#麦辣鸡翅2块#送错"
                }
              ]
            }
          }

Food组件添加商品评价结构

好,现在让我们将评价结构搭出来,并且绑定对应的数据。

<templete>
  <transtition name="food-detail">
    <div class="food" v-show="showFlag" ref="foodView">
      <div class="food-wrapper">
        <div class="food-content"></div>
         <!-- 商品评价列表结构,数据的绑定渲染 -->
        <div class="rating-wrapper">
           <div class="rating-title">
            <div class="like-ratio" v-if="food.rating">
             <span class="title">{{food.rating.title}}</span>
             <span class="ratio">
              (
              {{food.rating.like_ratio_desc}}
              <i>{{food.rating.like_ratio}}</i>
              )
             </span>
            </div>
            <div class="snd-title" v-if="food.rating">
             <span class="text">{{food.rating.snd_title}}</span>
             <span class="icon icon-keyboard_arrow_right"></span>
            </div>
           </div>
           <ul class="rating-content" v-if="food.rating">
            <li v-for="comment in food.rating.comment_list" class="comment-item">
             <div class="comment-header">
              <img :src="comment.user_icon" v-if="comment.user_icon">
              <img src="./anonymity.png" v-if="!comment.user_icon">
             </div>
             <div class="comment-main">
              <div class="user">{{comment.user_name}}</div>
              <div class="time">{{comment.comment_time}}</div>
              <div class="content">{{comment.comment_content}}</div>
             </div>
            </li>
           </ul>
        </div>
      </div>
    </div>
  </transition>
</templete>

导入,注册组件

<script>
  // 导入BScroll
  import BScroll from "better-scroll";
  // 导入Cartcontrol
  import Cartcontrol from "components/Cartcontrol/Cartcontrol";
  // 导入Vue
  import Vue from "vue";
  
  export default {
   data() {
    return {
     showFlag: false
    };
   },
    //接收来自Goods父组件中选中的food;
   props: {
    food: {
     type: Object
    }
   },
   methods: {
    //这里是上篇我们实现商品详情页的方法
   },
   components: {
    Cartcontrol,
    BScroll
   }
};
</script>

到这里我们就完成了商品详情页面的评论列表,下篇我们来实现商品评价栏目。

总结

以上所述是小编给大家介绍的Vue实现商品详情页的评价列表功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
一个cssQuery对象 javascript脚本实现代码
Jul 21 Javascript
将CKfinder整合进CKEditor3.0的新方法
Jan 10 Javascript
jquery radio 操作代码
Mar 16 Javascript
关于使用 jBox 对话框的提交不能弹出问题解决方法
Nov 07 Javascript
javascript 得到文件后缀名的思路及实现
May 09 Javascript
深入理解JavaScript系列(45):代码复用模式(避免篇)详解
Mar 04 Javascript
JQuery页面地址处理插件jqURL详解
May 03 Javascript
关于ES6的六个小特性(二)
Feb 20 Javascript
Angularjs的$http异步删除数据详解及实例
Jul 27 Javascript
Angular5中提取公共组件之radio list的实例代码
Jul 10 Javascript
前端Electron新手入门教程详解
Jun 21 Javascript
基于jsbarcode 生成条形码并将生成的条码保存至本地+源码
Apr 27 Javascript
Layui 数据表格批量删除和多条件搜索的实例
Sep 04 #Javascript
解决layui表格的表头不滚动的问题
Sep 04 #Javascript
解决layui数据表格table的横向滚动条显示问题
Sep 04 #Javascript
微信小程序tab切换可滑动切换导航栏跟随滚动实现代码
Sep 04 #Javascript
微信小程序JS加载esmap地图的实例详解
Sep 04 #Javascript
深入浅出vue图片路径的实现
Sep 04 #Javascript
webpack 如何解析代码模块路径的实现
Sep 04 #Javascript
You might like
PHP入门学习的几个不错的实例代码
2008/07/13 PHP
过滤掉PHP数组中的重复值的实现代码
2011/07/17 PHP
yii实现图片上传及缩略图生成的方法
2014/12/04 PHP
php实现当前页面点击下载文件的实例代码
2016/11/16 PHP
一款JavaScript压缩工具:X2JSCompactor
2007/06/13 Javascript
window.event.keyCode兼容IE和Firefox实现js代码
2013/05/30 Javascript
JQuery页面图片切换和新闻列表滚动效果的具体实现
2013/09/26 Javascript
JavaScript  cookie 跨域访问之广告推广
2016/04/20 Javascript
JS简单循环遍历json数组的方法
2016/04/22 Javascript
jQuery实现拖拽页面元素并将其保存到cookie的方法
2016/06/12 Javascript
使用InstantClick.js让页面提前加载200ms
2017/09/12 Javascript
js+html5生成自动排列对话框实例
2017/10/09 Javascript
Vue的轮播图组件实现方法
2018/03/03 Javascript
vue监听对象及对象属性问题
2018/08/20 Javascript
基于Proxy的小程序状态管理实现
2019/06/14 Javascript
Vue.js中的extend绑定节点并显示的方法
2019/06/20 Javascript
微信小程序工具函数封装
2019/10/28 Javascript
vue-cli3.X快速创建项目的方法步骤
2019/11/14 Javascript
微信小程序实现搜索功能
2020/03/10 Javascript
Vue 样式切换及三元判断样式关联操作
2020/08/09 Javascript
[56:20]LGD vs VP Supermajor 败者组决赛 BO3 第三场 6.10
2018/07/04 DOTA
探究Python中isalnum()方法的使用
2015/05/18 Python
Django中传递参数到URLconf的视图函数中的方法
2015/07/18 Python
python使用pil进行图像处理(等比例压缩、裁剪)实例代码
2017/12/11 Python
Python中的元组介绍
2019/01/28 Python
python如何编写win程序
2020/06/08 Python
GUESS Factory加拿大:牛仔裤、服装及配饰
2019/09/20 全球购物
我想声明一个指针并为它分配一些空间, 但却不行。这些代码有什么 问题?char *p; *p = malloc(10);
2016/10/06 面试题
路由表示做什么用的?在linux环境中怎么来配置一条默认路由?
2013/06/07 面试题
化工专业推荐信范文
2013/11/28 职场文书
2015感人爱情寄语
2015/02/26 职场文书
离婚被告代理词
2015/05/23 职场文书
2016年三八节红领巾广播稿
2015/12/17 职场文书
六年级作文之关于梦
2019/10/22 职场文书
react国际化react-intl的使用
2021/05/06 Javascript
springboot @ConfigurationProperties和@PropertySource的区别
2021/06/11 Java/Android