Vue系列之 => 评论功能(小知识点串联)
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <meta http-equiv="X-UA-Compatible" content="ie=edge">
- <title>Document</title>
- <script src="../lib/jquery2.1.4.min.js"></script>
- <script src="../lib/Vue2.5.17.js"></script>
- <link rel="stylesheet" href="../lib/bootstrap-3.3.7-dist/css/bootstrap.css">
- </head>
- <body>
- <div id="app">
- <comment @func="loadComments"></comment>
- <ul class="list-group">
- <li class="list-group-item" v-for="(item,index) in list" :key="index">
- <span class="badge">评论人:{{ item.user }}</span>
- {{ item.content }}
- </li>
- </ul>
- </div>
- <!-- 模板 -->
- <template id="tmpl">
- <div>
- <div class="form-group form-inline">
- <label for="">评论人:</label>
- <input type="text" v-model="user" class="form-control">
- </div>
- <div class="form-group form-inline">
- <label for="">评论内容:</label>
- <textarea v-model="content" name="" id="" cols="30" rows="10" class="form-control"></textarea>
- </div>
- <div class="form-group form-inline">
- <input type="button" class="btn btn-primary" @click="postComment" value="发表评论">
- </div>
- </div>
- </template>
- <script>
- var commentBox = {
- data(){
- return {
- user : '',
- content : ''
- }
- },
- template: '#tmpl',
- methods: {
- postComment(){ //发表评论的方法
- // 分析 发表评论的业务逻辑
- // 1,评论数据放到 localStorage 中
- // 2, 先组装一个最新的评论数据对象
- // 3, 想办法把第二步中得到的评论对象保存到localStorage中
- // 3.1 localStorage中只支持存放字符串,要先调用 JSON.stringify
- // 3.2 在保存最新的评论数据之前,要先从localStorage获取到之前的评论数据(string)转换为一个数组对象。
- //然后把最新的评论 push 到这个数组。(解决如果键相同值会覆盖的问题)
- // 3.3 如果获取 localStorage中的评论字符串为空不存在,则可以返回一个 '[]' ,让JSON.parse转换
- // 3.4 把最新的评论数组再次调用 JSON.stringify 转为数组字符串,然后调用localStorage.setItem()
- var comment = { id : Date.now() , user : this.user , content : this.content };
- //从localStorage中获取所有评论
- var list = JSON.parse(localStorage.getItem('cmts') || '[]');
- // list.push(comment);
- list.unshift(comment);
- //重新保存最新的评论数据
- localStorage.setItem('cmts',JSON.stringify(list));
- this.$emit('func');
- this.user = this.content = '';
- }
- },
- }
- var vm = new Vue({
- el: '#app',
- data: {
- list: [{
- id: Date.now(),
- user: '李白',
- content: '天生我才必有用'
- },
- {
- id: Date.now(),
- user: '江小白',
- content: '劝君更尽一杯酒'
- },
- {
- id: Date.now(),
- user: '小马',
- content: '我姓马,马云的马'
- },
- ]
- },
- created() { //在创建的时候就调用加载函数。
- this.loadComments();
- },
- methods: {
- loadComments(){ //从本地的localStorage中加载列表
- var list = JSON.parse(localStorage.getItem('cmts') || '[]');
- this.list = list;
- }
- },
- components: {
- comment: commentBox
- }
- })
- </script>
- </body>
- </html>
Vue系列之 => 评论功能(小知识点串联)的更多相关文章
- 第 14 篇:交流的桥梁“评论功能”——HelloDjango 系列教程
截止到目前为止我们的 django blog 文章展示部分,已经实现的"八九不离十"了.你以为本系列文章就要结束了吗?不能够!新的征程才刚刚开始,HelloDjango 系列文章刚 ...
- React.js 小书 Lesson16 - 实战分析:评论功能(三)
作者:胡子大哈 原文链接:http://huziketang.com/books/react/lesson16 转载请注明出处,保留原文链接和作者信息. 接下来的代码比较顺理成章了.修改 Commen ...
- React.js 小书 Lesson14 - 实战分析:评论功能(一)
作者:胡子大哈 原文链接:http://huziketang.com/books/react/lesson14 转载请注明出处,保留原文链接和作者信息. 课程到这里大家已经掌握了 React.js 的 ...
- vue教程2-07 微博评论功能
vue教程2-07 微博评论功能 <!doctype html> <html> <head> <meta charset="utf-8"& ...
- React.js 小书 Lesson25 - 实战分析:评论功能(四)
作者:胡子大哈 原文链接:http://huziketang.com/books/react/lesson25 转载请注明出处,保留原文链接和作者信息. (本文未审核) 目前为止,第二阶段知识已经基本 ...
- Vue 变异方法splice删除评论功能
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 一周一个小demo — vue.js实现备忘录功能
这个vue实现备忘录的功能demo是K在github上找到的,K觉得这是一个用来对vue.js入门的一个非常简单的demo,所以拿在这里共享一下. (尊重他人劳动成果,从小事做起~ demo原git ...
- 全栈项目|小书架|服务器端-NodeJS+Koa2 实现评论功能
评论功能分析 上图可以看出评论功能主要实现了:评论的发布.评论列表的展示. 在不考虑子评论以及图片评论的场景下,评论功能主要有以下两个接口: 发布评论 获取评论列表(考虑分页) 评论 Model 的建 ...
- 手写 Vue 系列 之 从 Vue1 升级到 Vue2
前言 上一篇文章 手写 Vue 系列 之 Vue1.x 带大家从零开始实现了 Vue1 的核心原理,包括如下功能: 数据响应式拦截 普通对象 数组 数据响应式更新 依赖收集 Dep Watcher 编 ...
随机推荐
- Javadoc转换chm帮助文档的四种方法总结
1) 将现有的 html 文件集(比如 api) 制作成chm 文档 http://www.blogjava.net/lishunli/archive/2010/01/07/308618.html 我 ...
- Linux------使用Xfpt6连接阿里云ECS服务器
1.安装Xftp6,直接下一步到安装完成就可以了 2.新建文件传输 3.新建会话 4.填写会话信息 5.点击“连接”即可
- VS F5不编译 F5总是重新编译
遇到奇怪的现象,F5不编译了 右键解决方案-配置管理器-确保项目的生成被勾选 另外一个情况,即使不修改任何代码,每次点击“生成”或者F5,都会重新编译(Debug模式没问题,Release有这个问题, ...
- python接口自动化测试(七)unittest 生成测试报告
用例的管理问题解决了后,接下来要考虑的就是报告我问题了,这里生成测试报告主要用到 HTMLTestRunner.py 这个模块,下面简单介绍一下如何使用: 一.下载HTMLTestRunner下载: ...
- thymeleaf(二)
项目demo http://pan.baidu.com/s/1wg6PC 学习资料网址 http://www.blogjava.net/bjwulin/archive/2013/02/07/ ...
- java实现爬虫功能
/** * 爬取新闻信息,封装成实体bean */public class GetNews { public List<News> getNews() { // 存储新闻对象 List ...
- plsql中文乱码
一.关于PLSQL无法正确显示中文 刚才下载安装了PLSQL Developer 9.0.0.1601 汉化绿色版,执行SQL查询语句,发现显示的数据中只要有中文都会以?表示. 原因:客户端跟服务器的 ...
- laravel 5.4 导出excel表格
1.在laravel根目录下面找到一个composer.json文件 打开并在require下面加上一句话,如图所示: 注:以后这个excel的版本号可能还会修改 2.执行 composer inst ...
- 类似于Mimikatz的Linux Hash Dump工具
项目主页 https://github.com/huntergregal/mimipenguin 需要root权限 支持 Kali 4.3.0 (rolling) x64 (gdm3) Ubuntu ...
- django cookies与session
1. cookiies # cookies def login(request): print('COOKIES',request.COOKIES) print('SESSION',request.s ...