简易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 相关文章推荐
[原创]网络复制内容时常用的正则+editplus
Nov 30 Javascript
jquery中获得$.ajax()事件返回的值并添加事件的方法
Apr 15 Javascript
js之onload事件的一点使用心得
Aug 14 Javascript
JavaScript中的ArrayBuffer详细介绍
Dec 08 Javascript
js与jquery实时监听输入框值的oninput与onpropertychange方法
Feb 05 Javascript
详解JS-- 浮点数运算处理
Nov 28 Javascript
原生JS实现的简单轮播图功能【适合新手】
Aug 17 Javascript
JS中注入eval, Function等系统函数截获动态代码
Apr 03 Javascript
javascript实现的字符串转换成数组操作示例
Jun 13 Javascript
通过图带你深入了解vue的响应式原理
Jun 21 Javascript
antd design table更改某行数据的样式操作
Oct 31 Javascript
vue实现标签云效果的示例
Nov 09 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 extract 将数组拆分成多个变量的函数
2010/06/30 PHP
PHP的一个基础知识 表单提交
2011/07/04 PHP
php实现文件下载简单示例(代码实现文件下载)
2014/03/10 PHP
调试WordPress中定时任务的相关PHP脚本示例
2015/12/10 PHP
分享php邮件管理器源码
2016/01/06 PHP
php制作的简单验证码识别代码
2016/01/26 PHP
PHP环形链表实现方法示例
2017/09/15 PHP
基于swoole实现多人聊天室
2018/06/14 PHP
实现连缀调用的map方法(prototype)
2009/08/05 Javascript
JQuery+JS实现仿百度搜索结果中关键字变色效果
2011/08/02 Javascript
js获取鼠标点击的位置实现思路及代码
2014/05/09 Javascript
JavaScript中的small()方法使用详解
2015/06/08 Javascript
JS组件Bootstrap Table使用实例分享
2016/05/30 Javascript
使用vue-cli导入Element UI组件的方法
2018/05/16 Javascript
vue2.0 可折叠列表 v-for循环展示的实例
2018/09/07 Javascript
JS中this的4种绑定规则详解
2020/02/04 Javascript
JS实现炫酷雪花飘落效果
2020/08/19 Javascript
[15:35]教你分分钟做大人:天怒法师
2014/10/30 DOTA
[01:06]欢迎来到上海,TI9
2018/08/26 DOTA
python实现mysql的单引号字符串过滤方法
2015/11/14 Python
Python中使用插入排序算法的简单分析与代码示例
2016/05/04 Python
Python表示矩阵的方法分析
2017/05/26 Python
详谈pandas中agg函数和apply函数的区别
2018/04/20 Python
python 剪切移动文件的实现代码
2018/08/02 Python
Python向excel中写入数据的方法
2019/05/05 Python
深入解析神经网络从原理到实现
2019/07/26 Python
pymysql之cur.fetchall() 和cur.fetchone()用法详解
2020/05/15 Python
巴西化妆品商店:Lojas Rede
2019/07/26 全球购物
Roxy荷兰官方网站:冲浪、滑雪板、服装和配件
2019/10/22 全球购物
中科软测试工程师面试题
2012/06/16 面试题
经典婚礼主持词
2014/03/13 职场文书
产品质量保证书
2014/04/29 职场文书
2014年学生会部门工作总结
2014/11/07 职场文书
Nginx开启Brotli压缩算法实现过程详解
2021/03/31 Servers
Python字符串的转义字符
2022/04/07 Python
Python爬虫 简单介绍一下Xpath及使用
2022/04/26 Python