基于vue和bootstrap实现简单留言板功能


Posted in Javascript onMay 30, 2020

本文实例为大家分享了vue实现简单留言板功能的具体代码,供大家参考,具体内容如下

作为一个刚开始接触vue的前端小白,我想在这里记录一些学习过程,希望和大家一起进步,如有不妥处之处,请多多指教呦。

今天呢,是我学习vue的第二天,我想制作一个简易的留言板。功能很简单,就是数据的增删改查,下面开始步入正题:
大致布局如下:

基于vue和bootstrap实现简单留言板功能

1.html布局

如果大家不想自己去写css样式,使用bootstrap框架是一个很好地选择,它提供了一套响应式、移动设备优先的流式栅格系统。

<div id="app" class="container" >
 <h3>{{title}}:</h3>
 <ul class="form-group" style="max-height: 300px;overflow: auto;">
 <li class="list-group-item row" v-for="(item,index) in search" :key="item.id">
  <span class='col-sm-1' >{{item.nikename}}:</span>
  <span class='col-sm-5'>{{item.content}}</span>
  <span class='col-sm-2'>{{item.date}}</span>
  <button class='col-sm-2 btn btn-danger' type="button" @click="del(index,item.id)">删除</button>
  <button class='col-sm-2 btn btn-info' type="button" @click="checkPre(index,item.id)">修改</button>
 </li>
 </ul>
 <br><br><br>
 <form class="form-horizontal" v-show="bl">
 <div class="form-group">
  <label for="search" class="col-sm-1 control-label">搜索</label>
  <div class="col-sm-11">
  <input type="text" class="form-control" id="search" placeholder="搜索留言" v-model="query" >
  </div>
 </div>
 <div class="form-group">
  <label for="nikename" class="col-sm-1 control-label">昵称</label>
  <div class="col-sm-11">
  <input type="text" class="form-control" id="nikename" placeholder="请输入昵称" v-model="nikename">
  </div>
  </div>
  <div class="form-group">
 <label for="content" class="col-sm-1 control-label">内容</label>
 <div class="col-sm-11">
  <textarea id="content" class="form-control" rows="3" v-model="content"></textarea>
 </div>
  </div>
  <button type="button" class="btn btn-success col-sm-1 col-sm-push-9" @click="add" >发表</button>
  <button type="button" class="btn btn-danger col-sm-1 col-sm-push-10" @click="clear" >清屏</button>
 </form> 
 <form class="form-horizontal" v-show="!bl">
  <div class="form-group">
 <label class="col-sm-1 control-label">修改:</label>
 <div class="col-sm-11">
  <textarea class="form-control" rows="3" v-model="changeContent"></textarea>
 </div>
  </div>
  <button type="button" class="btn btn-success col-sm-1 col-sm-push-11" @click="confirm">确认修改</button>
 </form> 
</div>

2.数据如下:由于没有连接数据库,所以采用了模拟数据

data:{
 title:'留言板',
 nikename:'',
 content:'',
 date:'',
 query:'',//查询的内容
 changeContent:'',//修改后的数据
 bl:true,
 list:[
 {id:1,nikename:"笑话",content:'今天天气真好',date:'2020-02-27-18:06'},
 {id:2,nikename:"小草",content:'是呀,那咱们出去晒太阳吧',date:'2020-02-26-18:06'}
 ]
 },

3.增加(发表)功能:

add() {
 this.list.push({
  id: this.list.length + 1,
  nikename: this.nikename,
  content: this.content,
 date:this.getdate()
 })
 this.nikename='';
 this.content='';
 },

用户输入的昵称和内容都采用了双向绑定,时间是获取的当下时间,发表按钮使用@click指令绑定了add函数。发表完后将昵称和内容框清空。

4.删除功能:

del(index,id){
 this.list.splice(index,1)
 }
clear(){
 this.list = [];//不可直接将数组长度设为零,这是非响应式的操作
 },

删除按钮绑定del,点击时删除一条评论,清屏按钮绑定clear,点击时删除所有评论。

5.修改功能:

checkPre(index,id){
 this.bl = !this.bl;
 this.nikename = this.list[index].nikename;
},
confirm(){
 this.list.forEach(function(item,index){
 if(item.nikename == vm.nikename){
 item.content = vm.changeContent;
 item.date = vm.getdate();
 }
 })
 this.bl = !this.bl;
 vm.nikename='';
},

点击修改,改变vm.bl的值,并记录当前评论的昵称,修改框使用了v-show指令,当vm.bl值为false时显示。点击确认修改,根据当前昵称寻找到要修改的评论,修改它的内容和发表时间。

6.查询功能:

computed:{
 search(){
 let result = [];
 this.list.forEach((item,index)=>{
 if(item.nikename.includes(this.query) || item.content.includes(this.query)){
 result.push(item)
 }
 })
 return result;
 },
},

查询功能依赖的是查询框输入的内容,因而使用了计算属性。

如果大家还想深入学习,可以点击这里进行学习,再为大家附3个精彩的专题:

关于vue.js组件的教程,请大家点击专题vue.js组件学习教程进行学习。

更多vue学习教程请阅读专题《vue实战教程》

以上就是关于本文的全部内容,希望对大家的学习有所帮助。

Javascript 相关文章推荐
javascript编程起步(第二课)
Jan 10 Javascript
jquery select(列表)的操作(取值/赋值)
Aug 06 Javascript
用js小类库获取浏览器的高度和宽度信息
Jan 15 Javascript
jQuery使用contains过滤器实现精确匹配方法详解
Feb 25 Javascript
打造自己的jQuery插件入门教程
Sep 23 Javascript
Javascript中 带名 匿名 箭头函数的重要区别(推荐)
Jan 29 Javascript
浅谈regExp的test方法取得的值变化的原因及处理方法
Mar 01 Javascript
form表单序列化详解(推荐)
Aug 15 Javascript
vue数字类型过滤器的示例代码
Sep 07 Javascript
原生js实现随机点名功能
Nov 05 Javascript
深入浅析JavaScript中的in关键字和for-in循环
Apr 20 Javascript
微信小程序点击滚动到指定位置的实现
May 22 Javascript
JS常见内存泄漏及解决方案解析
May 30 #Javascript
react结合bootstrap实现评论功能
May 30 #Javascript
基于JavaScript或jQuery实现网站夜间/高亮模式
May 30 #jQuery
JavaScript类的继承多种实现方法
May 30 #Javascript
Vue实现购物车实例代码两则
May 30 #Javascript
vue实现购物车案例
May 30 #Javascript
vue.js实现简单购物车功能
May 30 #Javascript
You might like
第十二节--类的自动加载
2006/11/16 PHP
yii2-GridView在开发中常用的功能及技巧总结
2017/01/07 PHP
关于laravel 日志写入失败问题汇总
2019/10/17 PHP
[原创]提供复制本站内容时出现,该文章转自脚本之家等字样的js代码
2007/03/27 Javascript
javascript下阻止表单重复提交、防刷新、防后退
2007/08/17 Javascript
js静态方法与实例方法分析
2011/07/04 Javascript
js判断IE浏览器版本过低示例代码
2013/11/22 Javascript
利用javascript实现禁用网页上所有文本框,下拉菜单,多行文本域
2013/12/14 Javascript
Jquery下EasyUI组件中的DataGrid结果集清空方法
2014/01/06 Javascript
用nodejs实现PHP的print_r函数代码
2014/03/14 NodeJs
Javascript保存网页为图片借助于html2canvas库实现
2014/09/05 Javascript
基于javascript html5实现3D翻书特效
2016/03/14 Javascript
JS平滑无缝滚动效果的实现代码
2016/05/06 Javascript
jquery实现全选、不选、反选的两种方法
2016/09/06 Javascript
详解js界面跳转与值传递
2016/11/22 Javascript
javascript中mouseenter与mouseover的异同
2017/06/06 Javascript
mui开发中获取单选按钮、复选框的值(实例讲解)
2017/07/24 Javascript
详解vue 实例方法和数据
2017/10/23 Javascript
纯JavaScript实现实时反馈系统时间
2017/10/26 Javascript
JavaScript递归函数定义与用法实例分析
2019/01/24 Javascript
微信小程序分享功能onShareAppMessage(options)用法分析
2019/04/24 Javascript
关于javascript中的promise的用法和注意事项(推荐)
2021/01/15 Javascript
在Python中使用异步Socket编程性能测试
2014/06/25 Python
利用Psyco提升Python运行速度
2014/12/24 Python
Python的UTC时间转换讲解
2019/02/26 Python
在Python中构建增广矩阵的实现方法
2019/07/01 Python
pycharm配置python 设置pip安装源为豆瓣源
2021/02/05 Python
HTML5+CSS3模仿优酷视频截图功能示例
2017/01/05 HTML / CSS
阿玛尼美国官方网站:Armani.com
2016/11/25 全球购物
成龙霸王洗发水广告词
2014/03/14 职场文书
关于运动会广播稿200字
2014/10/08 职场文书
军人离婚协议书样本
2014/10/21 职场文书
驳回起诉裁定书
2015/05/19 职场文书
个人借条范本
2015/05/25 职场文书
2016国培学习心得体会
2016/01/08 职场文书
关于Javascript闭包与应用的详解
2021/04/22 Javascript