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一步一步实现跨浏览器的可编辑表格,支持IE、Firefox、Safari、Chrome、Opera
Aug 28 Javascript
js函数参数设置默认值的一种变通实现方法
May 26 Javascript
javascript实现类似百度分享功能的方法
Jul 27 Javascript
JS实现模拟百度搜索“2012世界末日”网页地震撕裂效果代码
Oct 31 Javascript
轻松5句话解决JavaScript的作用域
Jul 15 Javascript
你知道setTimeout是如何运行的吗?
Aug 16 Javascript
学习vue.js计算属性
Dec 03 Javascript
JS中绑定事件顺序(事件冒泡与事件捕获区别)
Jan 24 Javascript
自制简易打赏功能的实例
Sep 02 Javascript
vue刷新和tab切换实例
Feb 11 Javascript
对angular2中的ngfor和ngif指令嵌套实例讲解
Sep 12 Javascript
Vue Elenent实现表格相同数据列合并
Nov 30 Vue.js
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/05 PHP
PHP的switch判断语句的“高级”用法详解
2014/10/01 PHP
php通过修改header强制图片下载的方法
2015/03/24 PHP
再推荐十款免费的php开发工具
2015/11/09 PHP
PHP filesize函数用法浅析
2019/02/15 PHP
js判断运行jsp页面的浏览器类型以及版本示例
2013/10/30 Javascript
Node调试工具JSHint的安装及配置教程
2014/05/27 Javascript
JavaScript的arguments对象应用示例
2014/09/15 Javascript
使用ajax+jqtransform实现动态加载select
2014/12/01 Javascript
javascript中的正则表达式使用指南
2015/03/01 Javascript
jquery实现倒计时效果
2015/12/14 Javascript
浅谈javascript中的Function和Arguments
2016/08/30 Javascript
JQuery实现动态操作表格
2017/01/11 Javascript
深入浅析Vue.js中 computed和methods不同机制
2018/03/22 Javascript
Vue 使用中的小技巧
2018/04/26 Javascript
一则python3的简单爬虫代码
2014/05/26 Python
Python基于回溯法子集树模板实现图的遍历功能示例
2017/09/05 Python
Python 逐行分割大txt文件的方法
2017/10/10 Python
解决出现Incorrect integer value: '' for column 'id' at row 1的问题
2017/10/29 Python
python通过百度地图API获取某地址的经纬度详解
2018/01/28 Python
对python修改xml文件的节点值方法详解
2018/12/24 Python
python多线程高级锁condition简单用法示例
2019/11/07 Python
python爬虫爬取笔趣网小说网站过程图解
2019/11/18 Python
jupyter notebook插入本地图片的实现
2020/04/13 Python
Python使用eval函数执行动态标表达式过程详解
2020/10/17 Python
CSS3绘制超炫的上下起伏波动进度加载动画
2016/04/21 HTML / CSS
英语系本科生求职信范文
2013/12/18 职场文书
大学生收银员求职信分享
2014/01/02 职场文书
初二物理教学反思
2014/01/29 职场文书
带薪年假请假条
2014/02/04 职场文书
厂办主管岗位职责范本
2014/02/28 职场文书
2014年档案室工作总结
2014/12/01 职场文书
任命书怎么写
2015/03/02 职场文书
关于分班的感言
2015/08/04 职场文书
浅谈resultMap的用法及关联结果集映射
2021/06/30 Java/Android
【DOTA2】当街暴打?PSG LGD vs VG - DPC 2022 WINTER TOUR CN
2022/04/02 DOTA