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 相关文章推荐
在一个浏览器里呈现所有浏览器测试结果的前端测试工具的思路
Mar 02 Javascript
jQuery为iframe的body添加click事件的实现代码
Apr 07 Javascript
jQuery中 noConflict() 方法使用
Apr 25 Javascript
JavaScript中的document.referrer在各种浏览器测试结果
Jul 18 Javascript
JavaScript获取网页、浏览器、屏幕高度和宽度汇总
Dec 18 Javascript
Javascript 运动中Offset的bug解决方案
Dec 24 Javascript
JS判断iframe是否加载完成的方法
Aug 03 Javascript
jQuery弹出遮罩层效果完整示例
Sep 13 Javascript
JSON对象 详解及实例代码
Oct 18 Javascript
javascript性能优化之分时函数的介绍
Mar 28 Javascript
jQuery实现下拉菜单动态添加数据点击滑出收起其他功能
Jun 14 jQuery
webstorm建立vue-cli脚手架的傻瓜式教程
Sep 22 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分页效率终结版(推荐)
2013/07/01 PHP
Codeigniter注册登录代码示例
2014/06/12 PHP
PHP 中使用explode()函数切割字符串为数组的示例
2017/05/06 PHP
php 人员权限管理(RBAC)实例(推荐)
2017/05/24 PHP
PHP中如何使用Redis接管文件存储Session详解
2018/11/28 PHP
JS 学习笔记 防止发生命名冲突
2009/07/30 Javascript
JS对象转换为Jquery对象示例
2014/01/26 Javascript
jquery如何判断表格同一列不同行input数据是否重复
2014/05/14 Javascript
jquery 插件实现瀑布流图片展示实例
2015/04/03 Javascript
JavaScript实现网页对象拖放功能的方法
2015/04/15 Javascript
javascript模拟评分控件实现方法
2015/05/13 Javascript
JS获取当前使用的浏览器名字以及版本号实现方法
2016/08/19 Javascript
vue.js中指令Directives详解
2017/03/20 Javascript
JavaScript实现分页效果
2017/03/28 Javascript
React + webpack 环境配置的方法步骤
2017/09/07 Javascript
jQuery中each方法的使用详解
2018/03/18 jQuery
JS实现点餐自动选择框(案例分析)
2019/12/10 Javascript
JS Html转义和反转义(html编码和解码)的实现与使用方法总结
2020/03/10 Javascript
深入解读VUE中的异步渲染的实现
2020/06/19 Javascript
[35:34]Liquid vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python处理图片之PIL模块简单使用方法
2015/05/11 Python
Python实现的求解最大公约数算法示例
2018/05/03 Python
python 多进程并行编程 ProcessPoolExecutor的实现
2019/10/11 Python
解决Keras TensorFlow 混编中 trainable=False设置无效问题
2020/06/28 Python
20佳惊艳的HTML5应用程序示例分享
2011/05/03 HTML / CSS
英国拖鞋购买网站:Bedroom Athletics
2020/02/28 全球购物
商场消防管理制度
2014/01/12 职场文书
茶叶店创业计划书范文
2014/01/19 职场文书
医院工作检讨书范文
2014/02/10 职场文书
学校安全责任书
2014/04/14 职场文书
办理护照工作证明
2014/10/10 职场文书
大学生党员自我评价
2015/03/04 职场文书
2015年园林绿化工作总结
2015/05/23 职场文书
《乘法分配律》教学反思
2016/02/24 职场文书
html+css实现赛博朋克风格按钮
2021/05/26 HTML / CSS
Android Studio实现带三角函数对数运算功能的高级计算器
2022/05/20 Java/Android