本文实例为大家分享了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 } } })
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。
本文向大家介绍vue.js实现备忘录功能的方法,包括了vue.js实现备忘录功能的方法的使用技巧和注意事项,需要的朋友参考一下 这个vue实现备忘录的功能demo是K在github上找到的,K觉得这是一个用来对vue.js入门的一个非常简单的demo,所以拿在这里共享一下。 (尊重他人劳动成果,从小事做起~ demo原github地址:https://github.com/vuejs/vue)
本文向大家介绍vue实现日历备忘录功能,包括了vue实现日历备忘录功能的使用技巧和注意事项,需要的朋友参考一下 用vue写了个日历备忘录的功能,省略了备忘录的增删改查功能。 直接上代码 欢迎大家提意见,提BUG 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。
21.5 再谈备忘录的封装 备忘录是一个很特殊的对象,只有原发器对它拥有控制的权力,负责人只负责管理,而其他类无法访问到备忘录,因此我们需要对备忘录进行封装。 为了实现对备忘录对象的封装,需要对备忘录的调用进行控制,对于原发器而言,它可以调用备忘录的所有信息,允许原发器访问返回到先前状态所需的所有数据;对于负责人而言,只负责备忘录的保存并将备忘录传递给其他对象;对于其他对象而言,只需要从负责人处取
21.4 实现多次撤销 Sunny软件公司开发人员通过使用备忘录模式实现了中国象棋棋子的撤销操作,但是使用上述代码只能实现一次撤销,因为在负责人类中只定义一个备忘录对象来保存状态,后面保存的状态会将前一次保存的状态覆盖,但有时候用户需要撤销多步操作。如何实现多次撤销呢?本节将提供一种多次撤销的解决方案,那就是在负责人类中定义一个集合来存储多个备忘录,每个备忘录负责保存一个历史状态,在撤销时可以对备
21.3 完整解决方案 为了实现撤销功能,Sunny公司开发人员决定使用备忘录模式来设计中国象棋软件,其基本结构如图21-4所示: 在图21-4中,Chessman充当原发器,ChessmanMemento充当备忘录,MementoCaretaker充当负责人,在MementoCaretaker中定义了一个ChessmanMemento类型的对象,用于存储备忘录。完整代码如下所示: //象棋棋子类
21.2 备忘录模式概述 备忘录模式提供了一种状态恢复的实现机制,使得用户可以方便地回到一个特定的历史步骤,当新的状态无效或者存在问题时,可以使用暂时存储起来的备忘录将状态复原,当前很多软件都提供了撤销(Undo)操作,其中就使用了备忘录模式。 备忘录模式定义如下: 备忘录模式(Memento Pattern):在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以