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 相关文章推荐
取得传值的函数
Oct 27 Javascript
jQuery 动态酷效果实现总结
Dec 27 Javascript
js实现上传图片之上传前预览图片
Mar 25 Javascript
javascript 实现字符串反转的三种方法
Nov 23 Javascript
javascript中取前n天日期的两种方法分享
Jan 26 Javascript
关闭页面window.location事件未执行的原因及解决方法
Sep 01 Javascript
原生js更改css样式的两种方式
Mar 15 Javascript
Bootstrap面板(Panels)的简单实现代码
Mar 17 Javascript
Angular2实现自定义双向绑定属性
Mar 22 Javascript
vue-router路由参数刷新消失的问题解决方法
Jun 17 Javascript
jQuery实现可编辑表格并生成json结果(实例代码)
Jul 19 jQuery
react高阶组件经典应用之权限控制详解
Sep 07 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
php中截取字符串支持utf-8
2007/01/18 PHP
PHP防范SQL注入的具体方法详解(测试通过)
2014/05/09 PHP
PHP简单读取PDF页数的实现方法
2016/07/21 PHP
PHP封装的分页类与简单用法示例
2019/02/25 PHP
SUN的《AJAX与J2EE》全文译了
2007/02/23 Javascript
JQuery优缺点分析说明
2010/06/09 Javascript
HTML上传控件取消选择
2013/03/06 Javascript
jQuery获取iframe的document对象的方法
2014/10/10 Javascript
js获取及判断键盘按键的方法
2015/12/01 Javascript
JavaScript实战(原生range和自定义特效)简单实例
2016/08/21 Javascript
纯JS打造网页中checkbox和radio的美化效果
2016/10/13 Javascript
jqGrid翻页时数据选中丢失问题的解决办法
2017/02/13 Javascript
node.js入门学习之url模块
2017/02/25 Javascript
jQuery 循环遍历改变a标签的href(实例讲解)
2017/07/12 jQuery
React学习之事件绑定的几种方法对比
2017/09/24 Javascript
浅谈vue引入css,less遇到的坑和解决方法
2018/01/20 Javascript
小程序根据手机机型设置自定义底部导航距离
2019/06/04 Javascript
JS async 函数的含义和用法实例总结
2020/04/08 Javascript
详解JavaScript之Array.reduce源码解读
2020/11/01 Javascript
python实现计算倒数的方法
2015/07/11 Python
Python实现批量将word转html并将html内容发布至网站的方法
2015/07/14 Python
python实现word 2007文档转换为pdf文件
2018/03/15 Python
Python random模块的使用示例
2020/10/10 Python
css 省略号 css3让多余的字符串消失并附加省略号的实现代码
2013/02/07 HTML / CSS
村官学习十八大感想
2014/01/15 职场文书
聚美优品恶搞广告词
2014/03/14 职场文书
校庆团日活动总结
2014/08/28 职场文书
个人总结与自我评价
2014/09/18 职场文书
国际政治学专业推荐信
2014/09/26 职场文书
见习报告格式范文
2014/11/08 职场文书
办公用房租赁协议书
2014/11/29 职场文书
2015年三八妇女节活动总结
2015/02/06 职场文书
入党积极分子培养联系人意见
2015/08/12 职场文书
干货:如何写好观后感 !
2019/05/21 职场文书
Python实现科学占卜 让视频自动打码
2022/04/09 Python
JavaScript原型链中函数和对象的理解
2022/06/16 Javascript