简易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在IE7下无法使用 $.ajax解决方法
Nov 11 Javascript
javascript 处理事件绑定的一些兼容写法
Dec 24 Javascript
可自定义速度的js图片无缝滚动示例分享
Jan 20 Javascript
详解AngularJS中的依赖注入机制
Jun 17 Javascript
使用jQuery的toggle()方法对HTML标签进行显示、隐藏的方法(示例)
Sep 01 Javascript
为输入框加入数字js校验代码分享
Nov 02 Javascript
JavaScript门道之标准库
May 26 Javascript
vue中render函数的使用详解
Oct 12 Javascript
深入理解redux之compose的具体应用
Jan 12 Javascript
Layer UI表格列日期格式化及取消自动填充日期的实现方法
May 10 Javascript
vue实现前端列表多条件筛选
Oct 26 Javascript
微信小程序绘制半圆(弧形)进度条
Nov 18 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
PHP与已存在的Java应用程序集成
2006/10/09 PHP
php 动态添加记录
2009/03/10 PHP
php header Content-Type类型小结
2011/07/03 PHP
php中钩子(hook)的原理与简单应用demo示例
2019/09/03 PHP
PHP中16个高危函数整理
2019/09/19 PHP
基于laravel缓冲cache的用法详解
2019/10/23 PHP
php正则表达式使用方法整理集合
2020/01/31 PHP
文字幻灯片
2006/06/26 Javascript
JavaScript按位运算符的应用简析
2014/02/04 Javascript
JS将光标聚焦在文本最后的实现代码
2014/03/28 Javascript
Node.js中require的工作原理浅析
2014/06/24 Javascript
js超时调用setTimeout和间歇调用setInterval实例分析
2015/01/28 Javascript
JavaScript 数据类型详解
2017/03/13 Javascript
浅谈react.js 之 批量添加与删除功能
2017/04/17 Javascript
javascript 判断一个对象为数组的方法
2017/05/03 Javascript
Vue插件打包与发布的方法示例
2018/08/20 Javascript
通过实例学习React中事件节流防抖
2019/06/17 Javascript
微信小程序如何通过用户授权获取手机号(getPhoneNumber)
2020/01/21 Javascript
vue自定义指令和动态路由实现权限控制
2020/08/28 Javascript
antd Form组件方法getFieldsValue获取自定义组件的值操作
2020/10/29 Javascript
解决js中的setInterval清空定时器不管用问题
2020/11/17 Javascript
python通过apply使用元祖和列表调用函数实例
2015/05/26 Python
Python数据结构之翻转链表
2017/02/25 Python
python中Switch/Case实现的示例代码
2017/11/09 Python
TensorFlow实现MLP多层感知机模型
2018/03/09 Python
aws 通过boto3 python脚本打pach的实现方法
2020/05/10 Python
python用tkinter实现一个gui的翻译工具
2020/10/26 Python
python中append函数用法讲解
2020/12/11 Python
HTML5 SEO优化的一些建议
2020/08/27 HTML / CSS
经济与贸易专业应届生求职信
2013/11/19 职场文书
人力资源管理毕业生自荐信
2014/06/26 职场文书
园林专业毕业生自荐信
2014/07/04 职场文书
欢迎新生标语2015
2015/07/16 职场文书
mybatis 解决从列名到属性名的自动映射失败问题
2021/06/30 Java/Android
如何利用opencv判断两张图片是否相同详解
2021/07/07 Python
Java实现贪吃蛇游戏的示例代码
2022/09/23 Java/Android