Vue.js实现备忘录功能

时间:2021-05-26

本文实例为大家分享了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;}#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 } }})

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

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章