简易Vue评论框架的实现(父组件的实现)


Posted in Javascript onJanuary 08, 2018

最近看到一个需求:

  1. 实现一个评论功能,要求对评论列表进行分页显示
  2. 对相应模块实现组件化
  3. 能显示发布者、发布时间以及内容

乍一看不是很难,但是在具体的实现上还是遇到了一些问题。此外,因为第一次使用 vue ,看文档看的也是一脸懵逼,话不多说,下面来分析一下,具体每个模块是怎么实现的。

源码地址

评论表单代码:

<!-- 文档结构区开始 -->
<template>
  <div id="comment" >
    <UserDiv @transferUser="getInput" ></UserDiv>
    <CommentDiv :List="List"></CommentDiv>
    <PageDiv @transferUser="getPage" :totalCount="totalCount" :currentPage="currentPage"></PageDiv>
  </div>
</template>
<!-- 文档结构区结束 -->
<!-- js 控制区开始 -->
<script>
//引入组件 commentInput、commentList、pagination
import UserDiv from './commentInput.vue'
import PageDiv from './pagination.vue'
import CommentDiv from './commentList.vue'

export default {
  //声明组件名
  name: 'comment',

  //包含实例可用组件的哈希表
  components: {
    UserDiv,
    PageDiv,
    CommentDiv
  },

  //声明组件参数
  data() {
    return {
      totalCount: 0,
      currentPage: 1,
      pagesize: 3,
      totalData: [],
      List: [],
    }
  },

  methods: {
    //显示评论列表信息的方法
    getInput(msg) {
      //将评论信息保存到评论数组里
      this.totalData.push({ text: msg })
      //计算评论信息总条数长度
      this.totalCount = this.totalData.length

      //判断评论总数是否大于单页显示条数
      if (this.totalCount <= this.pagesize) {
       // 显示所有评论
       this.List = this.totalData
      } else {
       // 截取totalData中 this.totalCount - this.pagesize 后面的元素进行显示
       this.List = this.totalData.slice(this.totalCount - this.pagesize)
      }
      //点击评论按钮,默认跳转显示第一页内容
      this.currentPage = 1
      //评论列表倒序显示,即最新评论,显示在最上面
      this.List.reverse()

    },

    // 计算评论列表每一页的显示内容
    getPage(curr, size) {
      this.currentPage = curr

      if (this.totalCount <= this.pagesize) {
        //显示所有评论
        this.List = this.totalData
      } else {
        var start = this.totalCount - this.currentPage * this.pagesize
        if (start < 0) { start = 0 }
        // 截取totalData中 [start, start + this.pagesize] 位元素进行显示
        this.List = this.totalData.slice(start, start + this.pagesize)
      }
      //评论列表倒序显示,即最新评论,显示在最上面
      this.List.reverse()
    }
  },
}
</script>
<!-- js 控制区结束 -->

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
基于jquery的给文章加入关键字链接
Oct 26 Javascript
用jquery实现的模拟QQ邮箱里的收件人选取及其他效果(一)
Jan 06 Javascript
Extjs 继承Ext.data.Store不起作用原因分析及解决
Apr 15 Javascript
JavaScript实现存储HTML字符串示例
Apr 21 Javascript
AngularJS初始化过程分析(引导程序)
Dec 06 Javascript
jQuery添加删除DOM元素方法详解
Jan 18 Javascript
浏览器复制插件zeroclipboard使用指南
Mar 26 Javascript
Bootstrap缩略图与警告框学习使用
Feb 08 Javascript
Javascript实现时间倒计时效果
Jul 15 Javascript
vue父组件中获取子组件中的数据(实例讲解)
Sep 27 Javascript
微信小程序中this.data与this.setData的区别详解
Sep 17 Javascript
JavaScript中isPrototypeOf函数
Nov 07 Javascript
关于react-router/react-router-dom v4 history不能访问问题的解决
Jan 08 #Javascript
OkHttp踩坑随笔为何 response.body().string() 只能调用一次
Jan 08 #Javascript
Vue 组件(component)教程之实现精美的日历方法示例
Jan 08 #Javascript
一步步教你利用webpack如何搭一个vue脚手架(超详细讲解和注释)
Jan 08 #Javascript
深入理解 webpack 文件打包机制(小结)
Jan 08 #Javascript
webpack构建的详细流程探底
Jan 08 #Javascript
详解ES6中的代理模式——Proxy
Jan 08 #Javascript
You might like
从网上搜到的phpwind 0day的代码
2006/12/07 PHP
完美解决phpexcel导出到xls文件出现乱码的问题
2016/10/29 PHP
PHP开发API接口签名生成及验证操作示例
2020/05/27 PHP
拖动一个HTML元素
2006/12/22 Javascript
用javascript实现计算两个日期的间隔天数
2007/08/14 Javascript
关于B/S判断浏览器断开的问题讨论
2008/10/29 Javascript
利用jQuery 实现GridView异步排序、分页的代码
2010/02/06 Javascript
刷新页面的几种方法小结(JS,ASP.NET)
2014/01/07 Javascript
DIV始终居中的js代码
2014/02/17 Javascript
用jquery仿做发微博功能示例
2014/04/18 Javascript
直接在JS里创建JSON数据然后遍历使用
2014/07/25 Javascript
JavaScript计算两个日期时间段内日期的方法
2015/03/16 Javascript
原生js和jquery实现图片轮播特效
2015/04/23 Javascript
PHP+jQuery实现随意拖动层并即时保存拖动位置
2015/04/30 Javascript
理解javascript异步编程
2016/01/27 Javascript
jQuery插件autocomplete使用详解
2017/02/04 Javascript
使用JS实现导航切换时高亮显示的示例讲解
2018/08/22 Javascript
JavaScript使用类似break机制中断forEach循环的方法
2018/11/13 Javascript
fetch 如何实现请求数据
2018/12/20 Javascript
微信小程序页面间传值与页面取值操作实例分析
2019/04/30 Javascript
Vue-cli3生成的Vue项目加载Mxgraph方法示例
2020/05/31 Javascript
javascript实现智能手环时间显示
2020/09/18 Javascript
python对url格式解析的方法
2015/05/13 Python
Python实现批量读取word中表格信息的方法
2015/07/30 Python
Python判断两个list是否是父子集关系的实例
2018/05/04 Python
利用css3 translate完美实现表头固定效果
2017/02/28 HTML / CSS
彪马荷兰官网:PUMA荷兰
2019/05/08 全球购物
iHerb俄罗斯:维生素、补品和天然产品
2020/07/09 全球购物
商务英语专业自荐信
2013/10/14 职场文书
高中生的学习总结自我鉴定
2013/10/26 职场文书
担保书格式及范文
2014/04/01 职场文书
读书活动总结范文
2014/04/26 职场文书
初级党校心得体会
2014/09/11 职场文书
科学发展观演讲稿
2014/09/11 职场文书
领导班子四风对照检查材料范文
2014/09/27 职场文书
广告策划的实习心得体会总结!
2019/07/22 职场文书