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

}

}

})

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

以上是 Vue.js实现备忘录功能 的全部内容, 来源链接: utcz.com/z/352951.html

回到顶部