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的一些特性和用法整理小结
Jan 13 Javascript
jQuery 隐藏和显示 input 默认值示例
Jun 03 Javascript
JavaScript判断变量是否为空的自定义函数分享
Jan 31 Javascript
简单谈谈node.js 版本控制 nvm和 n
Oct 15 Javascript
javascript实现数字倒计时特效
Mar 30 Javascript
JS面试题---关于算法台阶的问题
Jul 26 Javascript
JS上传图片预览插件制作(兼容到IE6)
Aug 07 Javascript
Servlet实现文件上传,可多文件上传示例
Dec 05 Javascript
vue结合element-ui使用示例
Jan 24 Javascript
原生javascript单例模式的应用实例分析
Feb 23 Javascript
JavaScript组合模式---引入案例分析
May 23 Javascript
小程序表单认证布局及验证详解
Jun 19 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
Jquery 设置标题的自动翻转
2009/10/03 Javascript
JavaScript中json对象和string对象之间相互转化
2012/12/26 Javascript
jquery ui对话框实例代码
2013/05/10 Javascript
JS判定是否原生方法
2013/07/22 Javascript
浏览器窗口大小变化时使用resize事件对框架不起作用的解决方法
2014/05/11 Javascript
javascript使用数组的push方法完成快速排序
2014/09/15 Javascript
纯js实现仿QQ邮箱弹出确认框
2015/04/29 Javascript
jquery 遍历数组 each 方法详解
2016/05/25 Javascript
js获取浏览器的各种属性
2017/04/27 Javascript
微信小程序实现瀑布流布局与无限加载的方法详解
2017/05/12 Javascript
利用three.js画一个3D立体的正方体示例代码
2017/11/19 Javascript
JS运动特效之任意值添加运动的方法分析
2018/01/24 Javascript
在create-react-app中使用css modules的示例代码
2018/07/31 Javascript
解决Vue调用springboot接口403跨域问题
2019/09/02 Javascript
详解Nuxt.js中使用Element-UI填坑
2019/09/06 Javascript
vue实现百度搜索功能
2020/12/28 Javascript
聊聊Vue中provide/inject的应用详解
2019/11/10 Javascript
python操作gmail实例
2015/01/14 Python
python图像处理之反色实现方法
2015/05/30 Python
分析并输出Python代码依赖的库的实现代码
2015/08/09 Python
Python中动态检测编码chardet的使用教程
2017/07/06 Python
使用DataFrame删除行和列的实例讲解
2018/04/08 Python
Python wxPython库使用wx.ListBox创建列表框示例
2018/09/03 Python
python实现对列表中的元素进行倒序打印
2019/11/23 Python
Python selenium的基本使用方法分析
2019/12/21 Python
Python异常原理及异常捕捉实现过程解析
2020/03/25 Python
Python爬虫爬取、解析数据操作示例
2020/03/27 Python
python3安装OCR识别库tesserocr过程图解
2020/04/02 Python
解决启动django,浏览器显示“服务器拒绝访问”的问题
2020/05/13 Python
flask框架中的cookie和session使用
2021/01/31 Python
Swisse官方海外旗舰店:澳大利亚销量领先,自然健康品牌
2017/12/15 全球购物
EJB的角色和三个对象
2015/12/31 面试题
产品陈列协议书(标准版)
2014/09/17 职场文书
2014年学校禁毒工作总结
2014/12/23 职场文书
自主招生自荐信格式范文
2015/03/25 职场文书
Python OpenCV实现图像模板匹配详解
2022/04/07 Python