使用Vue做个简单的评论 + localstorage存储
1、引入Vue.js
2、编写代码
代码
- <!DOCTYPE html>
- <html lang="zh">
- <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>Vue 和 localstorage 的结合使用(版本一)</title>
- <style>
- .main {
- border: 3px solid antiquewhite;
- width: 500px;
- height: 600px;
- margin: auto;
- }
- .top {
- border: 2px solid aquamarine;
- width: 450px;
- height: 200px;
- margin: auto;
- margin-top: 10px;
- text-align: center;
- }
- .content {
- border: 4px solid aliceblue;
- width: 450px;
- height: 350px;
- margin: auto;
- margin-top: 20px;
- }
- .top input {
- margin-top: 10px;
- height: 25px;
- width: 60%;
- margin-left: 20px;
- }
- .top label {
- display: flex;
- margin-left: 35px;
- height: 100px;
- }
- .top label>textarea {
- margin-left: 20px;
- width: 270px;
- }
- .top button {
- margin-left: 270px;
- background: #7FFFD4;
- width: 65px;
- }
- .content>div div {
- border: 3px solid #F0F8FF;
- height: 30px;
- margin-top: 4px;
- padding-top: 10px;
- }
- .content>div>div a {
- float: right;
- }
- </style>
- </head>
- <body>
- <script src="js/vue.js"></script>
- <div id="app" class="main">
- <div class="top">
- <div>
- 用户名:<input type="text" v-model="author" />
- <p></p>
- <label>
- <span>评论内容:</span>
- <textarea v-model="content"></textarea>
- </label>
- <p><button @click='saveData'>发布</button></p>
- </div>
- </div>
- <div class="content">
- <div v-for="data in datas" >
- <div>{{data.key}}:{{data.value}} <a href @click.prevent='del(data.id)'>删除此评论</a></div>
- </div>
- </div>
- </div>
- <script>
- new Vue({
- el:"#app",
- data:{
- datas:[],
- author:"",
- content:""
- },
- methods:{
- saveData(){
- //将用户名存储到localstorage中
- localStorage.setItem("input_author",this.author);
- if(this.author.trim() === ""){
- return alert("小兄弟,请先输入用户名啊!!!!");
- }
- if(this.content.trim() === ""){
- return alert("大兄弟,你输入一下内容呗!!!!!");
- }
- //将用户名和对应的内容push到数组中
- this.datas.push({
- id:+new Date(),
- key:this.author,
- value:this.content
- });
- //更新
- this.updateData();
- },
- updateData(){
- //将数组序列化成字符串存入localstorage中
- localStorage.setItem("author_content",JSON.stringify(this.datas));
- },
- del(id){
- //根据id过滤datas中的数组
- this.datas = this.datas.filter( (c) => c.id != id );//简写
- // this.datas= this.datas.filter(function(c){
- // return c.id != id;
- // })
- //更新数据
- this.updateData();
- }
- },
- created(){
- //取到上一次的用户名
- var author = localStorage.getItem("input_author");
- if(author){
- this.author = author;
- }
- //取出localstorage中的评论数据
- var content = localStorage.getItem("author_content");
- if(content){
- //将存在localstorage中的数据取出,并序列化储成对象存入数组中
- this.datas = JSON.parse(content);
- }
- }
- });
- </script>
- </body>
- </html>
运行结果:
Vue示例下载地址(Vue,Vue模块化):https://github.com/oukele/VueAndLocalstorage
^_^,每天保持心情的愉悦。
使用Vue做个简单的评论 + localstorage存储的更多相关文章
- 使用Vue做评论+localStorage存储(js模块化)
未分模块化 html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> &l ...
- 用 Vue 做一个简单的购物app
前言 最近在学习Vue的使用.看了官方文档之后,感觉挺有意思的.于是着手做了一个简单的购物app.h5 与原生 app 交互的原理这是我第一次在这个网站上写分享,如有不当之处,请多多指教. 一整个项目 ...
- vue做的简单购物车
<code><!DOCTYPE html><html><head lang="en"> <meta charset=" ...
- vue 做一个简单的TodoList
目录结构 index.html <!DOCTYPE html> <html> <head> <meta charset="utf-8"&g ...
- 全栈前端入门必看 koa2+mysql+vue+vant 构建简单版移动端博客
koa2+mysql+vue+vant 构建简单版移动端博客 具体内容展示 开始正文 github地址 <br/> 觉得对你有帮助的话,可以star一下^_^必须安装:<br/> ...
- day 82 Vue学习二之vue结合项目简单使用、this指向问题
Vue学习二之vue结合项目简单使用.this指向问题 本节目录 一 阶段性项目流程梳理 二 vue切换图片 三 vue中使用ajax 四 vue实现音乐播放器 五 vue的计算属性和监听器 六 ...
- MUI框架-05-用MUI做一个简单App
MUI框架-05-用MUI做一个简单App MUI 是一个前端框架,前端框架就像 Bootstrap,EasyUI,Vue ,为了做 app 呢,就有了更加高效的 MUI,我觉得前端框架有很多,也没有 ...
- 前台vue的使用简单小结
前台vue的使用简单小结 本项目要求:安装有node.js 6.0以及以上安装npm使用vue.js官方安装方法初始化项目npm install安装VueResurce:npm install vue ...
- Vue 变异方法splice删除评论功能
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
随机推荐
- Linux常用命令详解(1)
基础命令: ls man pwd cd mkdir echo touch cp mv rm rmdir cat more less head tail clear poweroff reboot 命令 ...
- js继承的方式及其优缺点
js继承方法 前因:ECMAScript不支持接口继承,只支持实现继承 一.原型链 概念:每个构造函数都有一个原型对象,原型对象都包含一个指向构造函数的指针,而实例都包含一个指向原型对象的内部指针,让 ...
- Elasticsearch Metric聚合
首先查看index文档信息 $ curl -XGET "http://172.16.101.55:9200/_cat/indices?v" 输出 health status ind ...
- [转帖]【JDK和Open JDK】平常使用的JDK和Open JDK有什么区别
https://www.cnblogs.com/sxdcgaq8080/p/7487369.html 其实不同的 openjdk的版本也不一样. atlassian说AdoptOpenJDK我们测试充 ...
- CSP 字符串匹配(201409-3)
问题描述 给出一个字符串和多行文字,在这些文字中找到字符串出现的那些行.你的程序还需支持大小写敏感选项:当选项打开时,表示同一个字母的大写和小写看作不同的字符:当选项关闭时,表示同一个字母的大写和小写 ...
- python-day10(正式学习)
目录 字符编码 计算机基础 文本编辑器存取文件的原理 python解释器执行py文件的原理 python解释器与文本编辑的异同 字符编码介绍 字符编码的分类 乱码分析 总结 文件操作 三种基本操作 文 ...
- Django 模版语法与使用
目录 Django 模版语法与使用 django模板语言介绍 (摘自官方文档) 链接 什么是模板? 模板语句的 注释 变量 {{ 变量 }} 点(.)在模板语言中有特殊的含义,用来获取对象的相应属性值 ...
- 滚动页面产生动画WOW.js的用法
简介 在一些网页上,当你滚动页面的时候会看到各式各样的元素动画效果,非常动感.WOW.js 就是一款帮助你实现这种 CSS 动画效果的插件.WOW.js 依赖 animate.css,所以它支持 an ...
- go语言坑之并发访问map
fatal error: concurrent map read and map write 并发访问map是不安全的,会出现未定义行为,导致程序退出.所以如果希望在多协程中并发访问map,必须提供某 ...
- Storm的基本概念
Storm的基本概念 Topology:拓扑,也俗称一个任务,类似于MapReduce中的job.将Spout.Bolt整合起来的拓扑图.定义了Spout和Bolt的结合关系.并发数量.配置等等. S ...