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 相关文章推荐
YUI的Tab切换实现代码
Apr 11 Javascript
jQuery数据显示插件整合实现代码
Oct 24 Javascript
javascript针对DOM的应用实例(一)
Apr 15 Javascript
jquery 无限级下拉菜单的简单实现代码
Feb 21 Javascript
node.js WEB开发中图片验证码的实现方法
Jun 03 Javascript
《JavaScript DOM 编程艺术》读书笔记之JavaScript 语法
Jan 09 Javascript
使用命令对象代替switch语句的写法示例
Feb 28 Javascript
js带前后翻页的图片切换效果代码分享
Sep 08 Javascript
Bootstrap每天必学之导航组件
Apr 25 Javascript
移动端横屏的JS代码(beta)
May 16 Javascript
js前端面试之同步与异步问题详解
Apr 03 Javascript
node.js ws模块搭建websocket服务端的方法示例
Apr 25 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
PHPlet在Windows下的安装
2006/10/09 PHP
10条PHP高级技巧[修正版]
2011/08/02 PHP
PHP PDOStatement::setFetchMode讲解
2019/02/03 PHP
PHP如何防止XSS攻击与XSS攻击原理的讲解
2019/03/22 PHP
Table冻结表头示例代码
2013/08/20 Javascript
html5 canvas js(数字时钟)实例代码
2013/12/23 Javascript
淘宝网提供的国内NPM镜像简介和使用方法
2014/04/17 Javascript
JavaScript中如何通过arguments对象实现对象的重载
2014/05/12 Javascript
JavaScript使用二分查找算法在数组中查找数据的方法
2015/04/07 Javascript
Angular设置title信息解决SEO方面存在问题
2016/08/19 Javascript
JavaScript数组去重的6个方法
2017/01/21 Javascript
JS常见算法详解
2017/02/28 Javascript
js实现随机数字字母验证码
2017/06/19 Javascript
jQuery+datatables插件实现ajax加载数据与增删改查功能示例
2018/04/17 jQuery
详解JavaScript作用域和作用域链
2019/03/19 Javascript
vue router 用户登陆功能的实例代码
2019/04/24 Javascript
Python简单实现自动删除目录下空文件夹的方法
2017/08/29 Python
Python+matplotlib+numpy绘制精美的条形统计图
2018/01/02 Python
nohup后台启动Python脚本,log不刷新的解决方法
2019/01/14 Python
python实现日志按天分割
2019/07/22 Python
python使用原始套接字发送二层包(链路层帧)的方法
2019/07/22 Python
Python MySQLdb 执行sql语句时的参数传递方式
2020/03/04 Python
15个Pythonic的代码示例(值得收藏)
2020/10/29 Python
python基于爬虫+django,打造个性化API接口
2021/01/21 Python
La Senza官网:北美顶尖性感内衣品牌
2018/08/03 全球购物
Optimalprint加拿大:在线打印服务
2020/04/03 全球购物
迪卡侬中国官网:Decathlon中国
2020/08/10 全球购物
兰兰过桥教学反思
2014/02/08 职场文书
元旦活动感言
2014/03/08 职场文书
四下基层实施方案
2014/03/28 职场文书
大专生自我鉴定怎么写
2014/09/16 职场文书
民主生活会剖析材料
2014/09/30 职场文书
公司财务人员岗位职责
2015/04/14 职场文书
vue实现锚点定位功能
2021/06/29 Vue.js
MySQL子查询中order by不生效问题的解决方法
2021/08/02 MySQL
mysql sum(if())和count(if())的用法说明
2022/01/18 MySQL