【vue】vue组件发表评论功能
今天看了vue相关的视频,所以跟着做一个小demo把知识串联起来,内容很简单但是也算是学习道路上的一点进步。
1 思路分析
发表评论模块写入一个组件,提高复用性。
关键点:
- 子组件通过localStorage向父组件传值
- 子组件有自己的data存储user和content,即评论人和评论内容,也就是dom元素绑定的数据。
- 点击‘发表评论’后,首先是将各条评论存入localStorage,然后通过在组件出绑定的函数调用父组件中的loadComments()加载评论。
- vue生命周期的熟悉。在created()中写入loadComments(),每次页面加载就会载入评论数据。
2 源代码
需要vue.js和bootstrap.js两个文件
<!DOCTYPE html>
<html>
<head><meta charset="utf-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge"><title>Page Title</title><meta name="viewport" content="width=device-width, initial-scale=1"><script src="../lib/vue.js"></script><link rel="stylesheet" href="../lib/bootstrap.css"><style>li{list-style:none;}</style>
</head>
<body><div id="app"><com @func="loadComments"></com><ul class="list-group"><li class="list-group-item" v-for="item in list">{{item.content}}<span class="badge">{{item.user}}</span></li></ul></div><!-- 评论区组件 --><template id="tmp"><div><div class="form-group"><label>评论人</label><input class="form-control" id="user" v-model:value="user"/></div><div class="form-group"><label>评论内容</label><input class="form-control" id="content" v-model:value="content"/></div> <div><input type="button" class="btn btn-primary" value="发表评论" @click="postComments"/></div></div></template><script>var tmp={template:"#tmp",data:function(){return {user:'',content:''}},methods:{postComments(){var comment={user:this.user,content:this.content};var list=JSON.parse(localStorage.getItem('cmts')||'[]');list.unshift(comment);localStorage.setItem('cmts',JSON.stringify(list));//数组对象和字符串相互转换的过程this.user='';this.content='';this.$emit('func');}}}var vm=new Vue({el:"#app",data:{list:[]},created(){this.loadComments();},methods:{loadComments(){this.list=JSON.parse(localStorage.getItem('cmts')||'[]');}},components:{'com':tmp}});</script>
</body>
</html>
【vue】vue组件发表评论功能相关推荐
- vue组件案例----发表评论功能
页面展示 1.引入样式bootstrap.css和vue.js文件 <link rel="stylesheet" href="../bootsrtrap/css/b ...
- 【Javascript】进阶之实现评论分页与发表评论功能
描述:实现评论分页与发表评论 1.评论分页,通过上一页.下一页和输入页数跳转 2.发表评论是需要先判断是否登录,登录后显示个人中心和退出,再发表评论,如果选择匿名评论,则显示匿名 代码实现 HTML ...
- vue组件实现发表评论功能(localStorage)
首先画出简单的界面如下: 说说我的思路:由于是为了去练习组件之间传值,所以将页面上的写评论部分写在了子组件中,然后在然后然后子组件点击发表将数据传递给父组件的data,再由父组件来渲染评论社区的页面. ...
- vue a-input组件的只读功能实现
<a-input readOnly style='width: 150px;margin-left: 10px' v-model='model.strategyInstrument' >& ...
- 小程序 发表评论功能
工作日志 随手笔记 仅供参考 1.点击发表按钮 判断内容是否为空 如果为空提示请输入内容 2.如果内容不为空 将评论框里输入的内容的值传入评论列表 <view wx:for="{{ ...
- 基于vue练习demo:发表评论案例 (使用localStorage存储数据)
前言 最近在学习 VUE的相关知识,之前学习html和css3和原生js及jq库时感觉还挺轻松,但是接触vue框架之后才发现需要了解的东西太多了(如 vue-router,vue-cli,webpac ...
- 16款优秀的Vue UI组件库推荐
16款优秀的Vue UI组件库推荐 Vue 是一个轻巧.高性能.可组件化的MVVM库,API简洁明了,上手快.从Vue推出以来,得到众多Web开发者的认可. 在公司的Web前端项目开发中,多个项目采用 ...
- 17款优秀的Vue UI组件库汇总
17款优秀的Vue UI组件库推荐 Vue 是一个轻巧.高性能.可组件化的MVVM库,API简洁明了,上手快.从Vue推出以来,得到众多Web开发者的认可. 在公司的Web前端项目开发中,多个项目采用 ...
- Vue UI组件库总结推荐
基于Vue的Quasar Framework 介绍 这个框架UI组件很全面,准备下次使用这个框架了 基于Vue的Quasar Framework 中文网 http://www.quasarchs.co ...
最新文章
- 【细品架构12/100】架构漫谈系列脑图
- 浏览器下载附件Content-Disposition
- Deformable ConvNets--Part4: Deformable Convolutional Networks
- 买了台任天堂Switch
- Docker 系列学习文章 | 什么是容器云?
- 十.激光SLAM框架学习之LeGO-LOAM框架---算法原理和改进、项目工程代码
- 如何设置 Web 服务器的权限之iis
- WingPro 8 for Mac(专业Python IDE开发工具)
- 我背着女朋友,用 Python 偷偷抓取了她的行踪(单身狗勿进)
- python返回值函数_Python函数的返回值(一)
- Linux课程---3、Linux远程登录和传输(操作Linux服务器软件)
- MATLAB数字图像处理模块在哪,MATLAB在数字图像处理中的应用
- Unity桌面程序读取Excel表格
- 【雅思大作文考官范文】——第十五篇:'high salaries' essay
- Mysq数据量不大查询速度却很慢,记录一次left join查询优化
- 基于支付宝微信通知的一种个人收款回调方案
- IP协议以及IP地址分类
- 如何写好JAVA代码
- 整数在计算机中的表示
- untrusted Developer You can allow using these apps in settings you can allow using these apps i
热门文章
- 【2023年第十一届泰迪杯数据挖掘挑战赛】B题:产品订单的数据分析与需求预测 建模及python代码详解 问题一
- 编写两个函数,分别求最大公约数和最小公倍数
- [ERP/鼎捷E10][自动分录]发出商品
- [教程] 新手安装指南:一步一步在Windows安装苹果雪豹系统
- 新能源车“乱战时代”,车企们在争什么?
- 串口通信及串口转蓝牙相关知识
- 个人作业-Week2 案例分析
- 微博财报背后:求变短视频
- python—利用TCP实现数据上传
- 高通410的随身WiFi安装风扇和散热片的教程