您好,登錄后才能下訂單哦!
本文實例為大家分享了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> <h2>備忘錄<span class="right">{{now}}</span></h2> </header> <section> <!-- 多行文本 --> <!-- 視圖傳數據 --> <!-- v-model="diary"雙向數據綁定 --> <textarea v-model="diary" 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 h2{ 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 >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 } } })
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。