Vue.js实现备忘录功能


Posted in Javascript onJune 26, 2019

本文实例为大家分享了Vue.js实现备忘录的具体代码,供大家参考,具体内容如下

效果展示:

Vue.js实现备忘录功能

html代码:

<!DOCTYPE html>
<html>
 <head>
 <meta charset="utf-8">
 <!-- 移动设备设置 -->
 <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no">
 <title>记事本</title>
 <link rel="stylesheet" type="text/css" href="css/noteUI.css" >
 <!-- vue核心框架 -->
 <script src="vue/vue.js" type="text/javascript" charset="UTF-8"></script>
 <script src="vue/vue-resource.min.js" type="text/javascript" charset="UTF-8"></script>
 </head>
 <body>
 
 <div id="app">
 <!-- 一般用于头部 -->
 <header>
 <h1>备忘录<span class="right">{{now}}</span></h1>
 </header>
 <section>
 <!-- 多行文本 -->
 <!-- 视图传数据 -->
 <!-- v-model="diary"双向数据绑定 -->
 <textarea v-model="diary" style="width: 100%;height: 200px;" placeholder="写日记是一个好习惯">
 </textarea>
 <!-- @click='finished'绑定methods属性中的方法 -->
 <button @click="finished" class="finish">完成</button>
 </section>
 <ul>
 <!-- 循环遍历data中的noteooks属性B,每次循环都赋值给nb -->
 <!-- v-for="(数组值,数组下标) in noteBooks"-->
 <li v-for="(nb,i) in noteBooks">
  <!--nb.txt类似对象访问-->
  <!-- v-html="nb.txt"绑定html代码 -->
  <p v-html="nb.txt">写日记是一个好习惯</p>
  <div class="btn_ground">
  <button @click="del" type="button" class="del left">删除</button>
  <!-- v-text="nb.time" 绑定文本等价于 {{nb.time}}-->
  <span class="time" v-text="nb.time"></span>
  <button @click="upDate(i)" type="button" class="update right">修改</button>
  </div>
 </li>
 </ul>
 </div>
 <footer>
 版权所有 zk
 </footer>
 <script src="noteBook.js" type="text/javascript" charset="UTF-8"></script>
 
 </body>
</html>

CSS代码:

*{
 margin: 0;
 padding:0;
}
header,#app,footer{
 margin:0 8px;
}
header h1{
 color: #FF4500;
 font-weight: normal;
 font-size: 24px;
 padding-top: 10px;
 padding-bottom: 4px;
 border-bottom: 1px solid #ccc;
 margin-bottom: 4px;
}
 
#app textarea{
 width: 100%;
 height: 200px;
 border: none;
 border-bottom: 1px solid #ccc;
 padding: 8px 4px;
}
button{
 padding: 4px;
 background-color: #fff;
 border: 1px solid #ccc;
 border-radius: 4px;
}
/* position: relative;没有脱离正常流 */
/* relitive相对于自己在流中的元素定位 */
/* relative一般用于位置微调,或者让absolute参考自己定位 */
#app section{
 position: relative;
 
}
.finish{
 position: absolute;
 background-color: limegreen;
 bottom: 8px;
 right: 4px;
}
#app ul{
 margin-top: 8px;
}
#app li{
 border-bottom: 1px solid #CCCCCC;
 margin-bottom: 8px;
}
.left{
 float: left;
}
.right{
 float: right;
}
/* 组合选择器 */
 
header span.right{
 font-size: 14px;
 padding-top:13px;
}
.btn_ground{
 height: 30px;
 margin-top: 4px;
}
.del{
 background-color: orangered;
 color: #FFFFFF;
}
.update{
 background-color: royalblue;
 color: #FFFFFF;
}
footer{
 color: #999;
 text-align: center;
 font-size: 12px;
}

js代码:

function getNowString(){
 var now=new Date()
 var arr=['日','一','二','三','四','五','六']
 
 return now.toLocaleDateString()
  +'星期'
 +arr[now.getDay()]
}
 
var App = new Vue({
 el:'#app',
 data:{
 now:getNowString(),
 noteBooks:[
 {
 time:'2019/6/17 星期一',
 txt:'今天天气不好'
 },{
 time:'2019/6/18 星期二',
 txt:'今天学习<i style="color:red">Adidas'
 }
 ],
 diary:'',
 index:'-1'
 },
 methods:{
 finished:function(){
 //!App.diary是考虑App.diary=null的情况
 if(!App.diary||0==App.diary.length)return
 
 if(-1==App.index){
 //存入noteBooks中
 //unshift插入到数组首位
 App.noteBooks.unshift({
  time:App.now,
  txt:App.diary
 })
 }else{
 //修改
 App.noteBooks[App.index]={
  time:App.now,
  txt:App.diary
 }
 App.index=-1
 }
 App.diary = ''
 App.now=getNowString()
 },
 del:function(i){
 // 删除 splice(起始下标,删除个数)
 App.noteBooks.splice(i,1)
 },
 upDate:function(i){
 var nb=App.noteBooks[i]
 App.diary=nb.txt
 App.now = nb.time
 //App.index 为-1表示新增,其他就是修改
 App.index=i
 }
 }
})

 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery图片不完全按比例自动缩小的简单代码
Jul 29 Javascript
js判断ie版本号的简单实现代码
Mar 05 Javascript
常用的JavaScript WEB操作方法分享
Feb 28 Javascript
AngularJS 简单应用实例
Jul 28 Javascript
在localStorage中存储对象数组并读取的方法
Sep 24 Javascript
BootStrap Fileinput的使用教程
Dec 30 Javascript
React props和state属性的具体使用方法
Apr 12 Javascript
CKeditor4 字体颜色功能配置方法教程
Jun 26 Javascript
JS实现移动端在线签协议功能
Aug 22 Javascript
20多个小事例带你重温ES10新特性(小结)
Sep 29 Javascript
jquery轻量级数字动画插件countUp.js使用详解
Oct 17 jQuery
vuex实现数据状态持久化
Nov 11 Javascript
微信小程序数据统计和错误统计的实现方法
Jun 26 #Javascript
Vue移动端右滑屏幕返回上一页附源码下载
Jun 26 #Javascript
微信小程序利用Canvas绘制图片和竖排文字详解
Jun 25 #Javascript
js+html实现周岁年龄计算器
Jun 25 #Javascript
Vue 列表上下过渡效果的实例代码
Jun 25 #Javascript
JS 封装父页面子页面交互接口的实例代码
Jun 25 #Javascript
微信小程序Echarts图表组件使用方法详解
Jun 25 #Javascript
You might like
解析wamp5下虚拟机配置文档
2013/06/27 PHP
PHP读取CURL模拟登录时生成Cookie文件的方法
2014/11/04 PHP
PHP+APACHE实现网址伪静态
2015/02/22 PHP
Yii2框架BootStrap样式的深入理解
2016/11/07 PHP
(转载)JavaScript中匿名函数,函数直接量和闭包
2007/05/08 Javascript
ExtJS下grid的一些属性说明
2009/12/13 Javascript
node.js中的fs.readdirSync方法使用说明
2014/12/17 Javascript
JavaScript让Textarea支持tab按键的方法
2015/06/26 Javascript
JS实现的简单轮播图运动效果示例
2016/12/22 Javascript
canvas时钟效果
2017/02/16 Javascript
微信小程序网络请求wx.request详解及实例
2017/05/18 Javascript
jquery版轮播图效果和extend扩展
2017/07/18 jQuery
基于vue.js实现的分页
2018/03/13 Javascript
vue+mock.js实现前后端分离
2019/07/24 Javascript
微信小程序停止其他视频播放当前视频的实例代码
2019/12/25 Javascript
使用Python求解最大公约数的实现方法
2015/08/20 Python
bpython 功能强大的Python shell
2016/02/16 Python
Python正则表达式知识汇总
2017/09/22 Python
python使用PIL实现多张图片垂直合并
2019/01/15 Python
Django 创建后台,配置sqlite3教程
2019/11/18 Python
简述python Scrapy框架
2020/08/17 Python
详解pandas中利用DataFrame对象的.loc[]、.iloc[]方法抽取数据
2020/12/13 Python
HTML5实时语音通话聊天MP3压缩传输3KB每秒
2019/08/28 HTML / CSS
美国著名的婴儿学步鞋老品牌:Robeez
2016/08/20 全球购物
方太官方网上商城:销售方太抽油烟机、燃气灶、消毒柜等
2017/01/17 全球购物
Alexandre Birman美国官网:亚历山大·伯曼
2019/10/30 全球购物
如何让Java程序执行效率更高
2014/06/25 面试题
《鱼游到了纸上》教学反思
2014/02/20 职场文书
房屋租赁意向书
2014/04/01 职场文书
捐款倡议书格式范文
2014/05/14 职场文书
施工安全标语
2014/06/07 职场文书
应届毕业生求职信范文
2014/07/07 职场文书
活着观后感
2015/06/03 职场文书
团干部培训班心得体会
2016/01/06 职场文书
使用Oracle跟踪文件的问题详解
2021/06/28 Oracle
Java获取字符串编码格式实现思路
2022/09/23 Java/Android