vue实现评论列表功能


Posted in Javascript onOctober 25, 2019

具体代码如下所示:

<!DOCTYPE html>
<html>
  <head>
    <title>简易评论列表</title>
    <meta charset="utf-8">
    <link rel="stylesheet" href="node_modules\bootstrap\dist\css\bootstrap.css" rel="external nofollow" rel="external nofollow" >
  </head>
  <body>
    <div id="app">
      <ul class="list-group">
        <!-- 为事件绑定别称时不要使用驼峰命名 -->
        <box @plocalcoments="localComents"></box>
        <li class="list-group-item" v-for="item in list" :key="item.id">
          <span class="badge">评论人: {{item.user}}</span>
          {{item.content}}
        </li>
      </ul>
    </div>
    <template id="temp">
      <div>
        <div class="form-group">
          <label>评论人:</label>
          <input type="text" class="form-control" v-model="user">
        </div>
        <div class="form-group">
          <label>评论内容:</label>
          <textarea class="form-control" v-model="content"></textarea>
        </div>
        <div class="form-group">
          <input type="button" value="发表评论" class="btn btn-primary" @click="add">
        </div>
      </div>
    </template>
  </body>
  <script src="node_modules\vue\dist\vue.js"></script>
  <script>
    let commentBox = {//定义评论组件
      data(){//进行数据的绑定,记住组件内的数据是一个方法
        return{
          user:'',
          content:''
        }
      },
      template:"#temp",
      methods:{
        add(){//评论添加函数
          //获取当前评论
          let comment = {id:Date.now(),user:this.user,content:this.content};
          //从localStorage读取列表
          let list = JSON.parse(localStorage.getItem('cmts')|| '[]');//若不存在cmts则返回空数组,避免json解析出错
          if(comment.user&&comment.content)//进行判空
          list.unshift(comment);
          localStorage.setItem('cmts',JSON.stringify(list));
          this.user=this.content='';//清空评论列表
          //利用$emit()方法来调用父组件的方法
          this.$emit('plocalcoments');
        }
      }
    }
    let vm = new Vue({
      el:"#app",
      data:{
        list:[]
      },
      components:{
        box:commentBox
      },
      created(){
        //实例创建后加载评论
        this.localComents();
      },
      methods:{
        localComents(){
          let list = localStorage.getItem('cmts'||'[]');//若不存在cmts则返回空数组,避免json解析出错
          this.list = JSON.parse(list);//刷新数据
        }
      }
    });
  </script>
</html>
<!DOCTYPE html>
<html>
  <head>
    <title>简易评论列表</title>
    <meta charset="utf-8">
    <link rel="stylesheet" href="node_modules\bootstrap\dist\css\bootstrap.css" rel="external nofollow" rel="external nofollow" >
  </head>
  <body>
    <div id="app">
      <ul class="list-group">
        <!-- 为事件绑定别称时不要使用驼峰命名 -->
        <box @plocalcoments="localComents"></box>
        <li class="list-group-item" v-for="item in list" :key="item.id">
          <span class="badge">评论人: {{item.user}}</span>
          {{item.content}}
        </li>
      </ul>
    </div>
    <template id="temp">
      <div>
        <div class="form-group">
          <label>评论人:</label>
          <input type="text" class="form-control" v-model="user">
        </div>
        <div class="form-group">
          <label>评论内容:</label>
          <textarea class="form-control" v-model="content"></textarea>
        </div>
        <div class="form-group">
          <input type="button" value="发表评论" class="btn btn-primary" @click="add">
        </div>
      </div>
    </template>
  </body>
  <script src="node_modules\vue\dist\vue.js"></script>
  <script>
    let commentBox = {//定义评论组件
      data(){//进行数据的绑定,记住组件内的数据是一个方法
        return{
          user:'',
          content:''
        }
      },
      template:"#temp",
      methods:{
        add(){//评论添加函数
          //获取当前评论
          let comment = {id:Date.now(),user:this.user,content:this.content};
          //从localStorage读取列表
          let list = JSON.parse(localStorage.getItem('cmts')|| '[]');//若不存在cmts则返回空数组,避免json解析出错
          if(comment.user&&comment.content)//进行判空
          list.unshift(comment);
          localStorage.setItem('cmts',JSON.stringify(list));
          this.user=this.content='';//清空评论列表
          //利用$emit()方法来调用父组件的方法
          this.$emit('plocalcoments');
        }
      }
    }
    let vm = new Vue({
      el:"#app",
      data:{
        list:[]
      },
      components:{
        box:commentBox
      },
      created(){
        //实例创建后加载评论
        this.localComents();
      },
      methods:{
        localComents(){
          let list = localStorage.getItem('cmts'||'[]');//若不存在cmts则返回空数组,避免json解析出错
          this.list = JSON.parse(list);//刷新数据
        }
      }
    });
  </script>
</html>

效果图:

vue实现评论列表功能

总结

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

Javascript 相关文章推荐
基于jquery 的一个progressbar widge
Oct 29 Javascript
Javascript 异步加载详解(浏览器在javascript的加载方式)
May 20 Javascript
下载文件个别浏览器文件名乱码解决办法
Mar 19 Javascript
javascript禁用键盘功能键让右击及其他键无效
Oct 09 Javascript
jQuery+ajax中getJSON() 用法实例
Dec 22 Javascript
JavaScript中的console.trace()函数介绍
Dec 29 Javascript
javascript实现完美拖拽效果
May 06 Javascript
JavaScript程序设计之JS调试
Dec 09 Javascript
JS实现六位字符密码输入器功能
Aug 19 Javascript
Vue.js实现分页查询功能
Nov 15 Javascript
vue App.vue中的公共组件改变值触发其他组件或.vue页面监听
May 31 Javascript
解决Vue中 父子传值 数据丢失问题
Aug 27 Javascript
vue中使用element ui的弹窗与echarts之间的问题详解
Oct 25 #Javascript
浅谈layui 表单元素的选中问题
Oct 25 #Javascript
layUI的验证码功能及校验实例
Oct 25 #Javascript
layui点击按钮页面会自动刷新的解决方案
Oct 25 #Javascript
详解node登录接口之密码错误限制次数(含代码)
Oct 25 #Javascript
Vue 用Vant实现时间选择器的示例代码
Oct 25 #Javascript
vue登录以及权限验证相关的实现
Oct 25 #Javascript
You might like
smarty模板判断数组为空的方法
2015/06/10 PHP
PHP7使用ODBC连接SQL Server2008 R2数据库示例【基于thinkPHP5.1框架】
2019/05/06 PHP
在IE下:float属性会影响offsetTop的取值
2006/12/22 Javascript
jquery 删除字符串最后一个字符的方法解析
2014/02/11 Javascript
jQuery常用操作方法及常用函数总结
2014/06/19 Javascript
js实现图片点击左右轮播
2015/07/08 Javascript
WebGL利用FBO完成立方体贴图效果完整实例(附demo源码下载)
2016/01/26 Javascript
Bootstrap基本组件学习笔记之分页(12)
2016/12/08 Javascript
backbone简介_动力节点Java学院整理
2017/07/14 Javascript
Bootstrap + AngularJS 实现简单的数据过滤字符查找功能
2017/07/27 Javascript
通过V8源码看一个关于JS数组排序的诡异问题
2017/08/14 Javascript
利用JQuery操作iframe父页面、子页面的元素和方法汇总
2017/09/10 jQuery
vue获取验证码倒计时组件
2019/08/26 Javascript
详解python如何调用C/C++底层库与互相传值
2016/08/10 Python
Python随机生成均匀分布在单位圆内的点代码示例
2017/11/13 Python
python求加权平均值的实例(附纯python写法)
2019/08/22 Python
Django使用uwsgi部署时的配置以及django日志文件的处理方法
2019/08/30 Python
python脚本之一键移动自定格式文件方法实例
2019/09/02 Python
使用Python给头像戴上圣诞帽的图像操作过程解析
2019/09/20 Python
Python sql注入 过滤字符串的非法字符实例
2020/04/03 Python
jupyter notebook 添加kernel permission denied的操作
2020/04/21 Python
python 写函数在一定条件下需要调用自身时的写法说明
2020/06/01 Python
爬虫代理的cookie如何生成运行
2020/09/22 Python
python pymysql库的常用操作
2020/10/16 Python
举例详解CSS3中的Transition
2015/07/15 HTML / CSS
Canvas中设置width与height的问题浅析
2018/11/01 HTML / CSS
轻金属冶金专业毕业生自荐信
2013/11/02 职场文书
大学毕业生文采飞扬的自我鉴定
2013/12/03 职场文书
玩具公司的创业计划书
2013/12/31 职场文书
工程安全员岗位职责
2014/03/09 职场文书
身边的榜样活动方案
2014/08/20 职场文书
公司领导班子民主生活会对照检查材料
2014/10/02 职场文书
公司感恩节活动策划书
2014/10/11 职场文书
Python中for后接else的语法使用
2021/05/18 Python
Mongo服务重启异常问题的处理方法
2021/07/01 MongoDB
一文搞清楚MySQL count(*)、count(1)、count(col)区别
2022/03/03 MySQL