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 相关文章推荐
javascript+xml技术实现分页浏览
Jul 27 Javascript
JQery 渐变图片导航效果代码 漂亮
Jan 01 Javascript
js中匿名函数的N种写法
Sep 08 Javascript
JavaScript声明变量名的语法规则
Jul 10 Javascript
JS实现的文字与图片定时切换效果代码
Oct 06 Javascript
JavaScript实现时间倒计时跳转(推荐)
Jun 28 Javascript
Angular中$cacheFactory的作用和用法实例详解
Aug 19 Javascript
js日期相关函数dateAdd,dateDiff,dateFormat等介绍
Sep 24 Javascript
react-native DatePicker日期选择组件的实现代码
Sep 12 Javascript
微信小程序开发常见问题及解决方案
Jul 11 Javascript
微信内置浏览器图片查看器的代码实例
Oct 08 Javascript
国内常用的js类库大全(CDN公共库)
Jun 24 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
如何获知PHP程序占用多少内存(memory_get_usage)
2012/09/23 PHP
一个经典的PHP文件上传类分享
2014/11/18 PHP
php获取从html表单传递数组的方法
2015/03/20 PHP
服务器迁移php版本不同可能诱发的问题
2015/12/22 PHP
详解WordPress开发中wp_title()函数的用法
2016/01/07 PHP
php微信公众号开发模式详解
2016/11/28 PHP
php识别翻转iphone拍摄的颠倒图片
2018/05/17 PHP
jQuery初学:find()方法及children方法的区别分析
2011/01/31 Javascript
javascipt基础内容--需要注意的细节
2013/04/10 Javascript
基于pthread_create,readlink,getpid等函数的学习与总结
2013/07/17 Javascript
单击某一段文字改写文本颜色
2014/06/06 Javascript
node.js中的fs.readlink方法使用说明
2014/12/17 Javascript
Easyui笔记2:实现datagrid多行删除的示例代码
2017/01/14 Javascript
jQuery树控件zTree使用方法详解(一)
2017/02/28 Javascript
nodejs模块nodemailer基本使用-邮件发送示例(支持附件)
2017/03/28 NodeJs
对于js垃圾回收机制的理解
2017/09/14 Javascript
在 webpack 中使用 ECharts的实例详解
2018/02/05 Javascript
vue $mount 和 el的区别说明
2020/09/11 Javascript
Vue+Java 通过websocket实现服务器与客户端双向通信操作
2020/09/22 Javascript
python 添加用户设置密码并发邮件给root用户
2016/07/25 Python
Python打包方法Pyinstaller的使用
2018/10/09 Python
Python单元和文档测试实例详解
2019/04/11 Python
Python函数参数匹配模型通用规则keyword-only参数详解
2019/06/10 Python
pytorch实现保证每次运行使用的随机数都相同
2020/02/20 Python
甲方资料员岗位职责
2013/12/13 职场文书
工商管理专业大学生职业生涯规划范文
2014/03/09 职场文书
小学优秀辅导员事迹材料
2014/05/11 职场文书
五一口号
2014/06/19 职场文书
土木工程专业本科生求职信
2014/10/01 职场文书
公司离职证明标准范本
2014/10/05 职场文书
教师评职称工作总结2015
2015/04/20 职场文书
庆祝教师节主题班会
2015/08/17 职场文书
《天使的翅膀》读后感3篇
2019/12/20 职场文书
详解Go与PHP的语法对比
2021/05/29 PHP
关于python中模块和重载的问题
2021/11/02 Python
win10更新失败无限重启解决方法
2022/04/19 数码科技