Vue系列之 => 评论功能(小知识点串联)

  1 <!DOCTYPE html>
  2 <html lang="en">
  3
  4 <head>
  5     <meta charset="UTF-8">
  6     <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7     <meta http-equiv="X-UA-Compatible" content="ie=edge">
  8     <title>Document</title>
  9     <script src="../lib/jquery2.1.4.min.js"></script>
 10     <script src="../lib/Vue2.5.17.js"></script>
 11     <link rel="stylesheet" href="../lib/bootstrap-3.3.7-dist/css/bootstrap.css">
 12 </head>
 13
 14 <body>
 15
 16     <div id="app">
 17         <comment @func="loadComments"></comment>
 18         <ul class="list-group">
 19             <li class="list-group-item" v-for="(item,index) in list" :key="index">
 20                 <span class="badge">评论人:{{ item.user }}</span>
 21                 {{ item.content }}
 22             </li>
 23         </ul>
 24
 25     </div>
 26
 27     <!-- 模板 -->
 28     <template id="tmpl">
 29         <div>
 30             <div class="form-group form-inline">
 31                 <label for="">评论人:</label>
 32                 <input type="text" v-model="user" class="form-control">
 33             </div>
 34
 35             <div class="form-group form-inline">
 36                 <label for="">评论内容:</label>
 37                 <textarea v-model="content" name="" id="" cols="30" rows="10" class="form-control"></textarea>
 38             </div>
 39
 40             <div class="form-group form-inline">
 41                 <input type="button" class="btn btn-primary" @click="postComment" value="发表评论">
 42             </div>
 43         </div>
 44     </template>
 45
 46     <script>
 47         var commentBox = {
 48             data(){
 49                 return {
 50                     user : ‘‘,
 51                     content : ‘‘
 52                 }
 53             },
 54             template: ‘#tmpl‘,
 55             methods: {
 56                 postComment(){ //发表评论的方法
 57                     //  分析 发表评论的业务逻辑
 58                     // 1,评论数据放到 localStorage 中
 59                     // 2, 先组装一个最新的评论数据对象
 60                     // 3, 想办法把第二步中得到的评论对象保存到localStorage中
 61                     // 3.1 localStorage中只支持存放字符串,要先调用 JSON.stringify
 62                     // 3.2 在保存最新的评论数据之前,要先从localStorage获取到之前的评论数据(string)转换为一个数组对象。
 63                     //然后把最新的评论 push 到这个数组。(解决如果键相同值会覆盖的问题)
 64                     // 3.3 如果获取 localStorage中的评论字符串为空不存在,则可以返回一个 ‘[]‘ ,让JSON.parse转换
 65                     // 3.4 把最新的评论数组再次调用 JSON.stringify 转为数组字符串,然后调用localStorage.setItem()
 66                     var comment = { id : Date.now() , user : this.user , content : this.content };
 67                     //从localStorage中获取所有评论
 68                     var list = JSON.parse(localStorage.getItem(‘cmts‘) || ‘[]‘);
 69                     // list.push(comment);
 70                     list.unshift(comment);
 71                     //重新保存最新的评论数据
 72                     localStorage.setItem(‘cmts‘,JSON.stringify(list));
 73                     this.$emit(‘func‘);
 74                     this.user = this.content = ‘‘;
 75                 }
 76             },
 77         }
 78
 79         var vm = new Vue({
 80             el: ‘#app‘,
 81             data: {
 82                 list: [{
 83                         id: Date.now(),
 84                         user: ‘李白‘,
 85                         content: ‘天生我才必有用‘
 86                     },
 87                     {
 88                         id: Date.now(),
 89                         user: ‘江小白‘,
 90                         content: ‘劝君更尽一杯酒‘
 91                     },
 92                     {
 93                         id: Date.now(),
 94                         user: ‘小马‘,
 95                         content: ‘我姓马,马云的马‘
 96                     },
 97                 ]
 98             },
 99             created() { //在创建的时候就调用加载函数。
100                 this.loadComments();
101             },
102             methods: {
103                 loadComments(){ //从本地的localStorage中加载列表
104                     var list = JSON.parse(localStorage.getItem(‘cmts‘) || ‘[]‘);
105                     this.list = list;
106                 }
107             },
108             components: {
109                 comment: commentBox
110             }
111         })
112     </script>
113 </body>
114
115 </html>

原文地址:https://www.cnblogs.com/winter-shadow/p/10206603.html

时间: 2024-08-30 14:58:57

Vue系列之 => 评论功能(小知识点串联)的相关文章

Django,Ajax,Vue实现文章评论功能 &#90573;

原文: http://blog.gqylpy.com/gqy/440 置顶:来自一名75后老程序员的武林秘籍--必读(博主推荐) 来,先呈上武林秘籍链接:http://blog.gqylpy.com/gqy/401/ 你好,我是一名极客!一个 75 后的老工程师! 我将花两分钟,表述清楚我让你读这段文字的目的! 如果你看过武侠小说,你可以把这个经历理解为,你失足落入一个山洞遇到了一位垂暮的老者!而这位老者打算传你一套武功秘籍! 没错,我就是这个老者! 干研发 20 多年了!我也年轻过,奋斗过!我

第 14 篇:交流的桥梁“评论功能”——HelloDjango 系列教程

截止到目前为止我们的 django blog 文章展示部分,已经实现的"八九不离十"了.你以为本系列文章就要结束了吗?不能够!新的征程才刚刚开始,HelloDjango 系列文章刚刚过半,后面的文章你将接触更多博客系统的细节.向着一个小而全的博客系统前进.前进.前进,你定会收获颇多. 今天我们就来开启博客的评论功能,建起和读者的沟通桥梁. 创建评论应用 相对来说,评论是另外一个比较独立的功能.Django 提倡,如果功能相对比较独立的话,最好是创建一个应用,把相应的功能代码组织到这个应

一周一个小demo — vue.js实现备忘录功能

这个vue实现备忘录的功能demo是K在github上找到的,K觉得这是一个用来对vue.js入门的一个非常简单的demo,所以拿在这里共享一下. (尊重他人劳动成果,从小事做起~  demo原github地址:https://github.com/vuejs/vue) 一.实现效果 二.代码展示 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>备忘录&l

搭建自己的技术博客系列(三)让你的博客拥有评论功能!

给大家介绍一个博客评论神器,Valine. 本来hexo博客用的是gitment,我也非常喜欢,看着逼格就超高呀.无奈我用着bug略多,而且毕竟有github账户的小伙伴似乎并不多.于是我就忍痛准备换评论系统.然后在最近刚刚加入的hexo博客群里,看见了一个神器.也就是本篇主人公--Valine.js. 具体配置就见如下的文章吧.它的定义-- 一款极简的无后端评论系统. 在多说和网易云跟帖相继倒闭的情况下,这个简直是救人一命胜造七级浮屠呀. Valine -- 一款极简的评论系统 Valine官

全栈项目|小书架|小程序端-评论功能实现

效果图 发布评论 发布评论的入口在图书详情页面,点击 写评论 按钮之后跳转到发布评论页面. wxml布局比较简单了,目前还没有添加图片评论功能,也没有子评论功能,所以伪代码就比较简单了: <view class="comment-container"> <!-- book name --> <view class="book-name"> <text>{{bookInfo.name}}</text> <

C++ 小知识点 WINAPI

int WINAPI WINMain 中,WINAPI含义 网友给出回答:在windef.h头文件中有如下定义#define WINAPI      __stdcall#define APIENTRY    WINAPIVC有两种函数调用方式 一种是__stdcall,另一种是__cdecl函数的调用方式有两种一种是PASCAL调用方式,另一种是C调用方式使用PASCAL调用方式,函数在返回到调用者之前将参数从栈中删除使用C调用方式,参数的删除是调用者完成的WinMain函数是由系统调用的,Wi

Java基础:多功能小窗口,swing,io,net综合应用

概念原理的理解,不代表能熟练应用. 如果将多个知识点关联并应用起来,这能加快我们对知识的掌握. 作为一个初学者,最快速的上手方式应该就是学以致用了. 下面做了一个小窗口,主要是为了综合应用java的一些基础功能,界面稍显随意. 界面: 具体功能以及代码: 1 /*具体实现功能: 2 * 1.根据地址栏的路径打开文本文件,显示在文本区域. 3 * 2.根据地址栏的网址获取网页源代码,显示在文本区域. 4 * 3.通过打开按钮打开本地文本文件,显示在文本区域. 5 * 4.通过保存按钮,把文本区域内

博客的评论功能

今天呢,我们一起来新增一个详细页面下的简单评论功能,又是一个简单到我都不好意思说的东东....当然啦,万丈高楼平地起,我们就从简单的开始,以后慢慢添加呗. 还是按照以前的老步骤,models>views>urls>templates. 因为我们要多一个评论功能,所以我们得新建一张用来保存评论数据的表.所已在models添加如下东东: class BlogComment(models.Model):     user_name = models.CharField('评论者名字', max

微信评论功能开启 将成净土还是地狱?

微信自发布以来,就像一个在优越环境中长大的孩童.前期自然是无忧无虑,不过随着时间的推移,需要学习.增添的东西就越来越多.尤其是自5.0版本以来,支付.游戏.表情商店.微商.小视频.生活服务等功能的不断加入,让微信逐渐"丰满"起来.由此,微信从一个轻量级应用开始向"连接一切"的庞然巨物发展. 但不可否认的是,多项功能的添加,带来的不仅仅是有利的一面,弊端也日渐凸显,比如微商的两面性就被用户所熟知.近日,微信正式测试公众号文章的评论功能.这究竟会让微信变成净土,还是地狱