Vue项目:Markdown笔记本(中)
什么是生命周期钩子?
接着上次的来讲,上从我们使用到了一个created()
函数,
其实这个created()函数,就是生命周期钩子 。每个Vue
实例都严格遵守着一个生命周期,包括多个环节:创建、挂载到新页面、更新、销毁。钩子 是一组特殊的函数,会在某个特殊的时间点被调用。举个例子:在创建Vue
实例的时候调用一个方法,可以使用created()
。
下面来看一下每个环节的生命周期钩子:
beforeCreate
:在Vue
实例被创建时(例如使用new Vue({})
)、完成其他事项之前调用。created
:在实例准备就绪之后调用。注意,此时实例还没有挂载到DOM中。beforeMount
:在挂载(添加)实例到Web页面之前调用。mounted
:当实例被挂载到页面并且DOM可见时调用。beforeUpdate
:当实例需要更新时(一般来说,是当某个数据或计算属性发生改变时)调用。updated
:在把数据变化应用到模板之后调用。注意此时DOM可能还没有更新。beforeDestroy
:在实例销毁之前调用。destroyed
:在实例完全销毁之后调用。
上次最后我们想要保存笔记本的更改,下次打开应用时能够加载并呈现出来。那么我们就可以使用created
钩子来恢复笔记内容。
new Vue({// ...// 当实例准备就绪会调用这个钩子created() {// 将content设置为存储的内容// 如果没有保存任何内容则设置为一个默认字符串this.content = localStorage.getItem('content') || 'You can write in
** markdown ** '},
//注意‘||’,若前面表达式结果为假,则会设置后半句,即之前没有保存过任何内容
})
当然,对于数据的保存加载,我们也可以不使用生命周期钩子,直接在数据中初始化 ,就是用恢复出来的值直接初始化content数据属性,在data()
中做更改:
new Vue({// ...data() {return {content: localStorage.getItem('content') || 'You can write in
**markdown**',}},
})
2. 多条笔记
2.1 添加笔记列表
我们要制作的是一个笔记本,应该具有能力容纳多条笔记,而不是只能记住一条内容。可以在界面的左边添加一个新的侧边栏来呈现出笔记列表,然后增加一些功能按钮,例如:重命名、收藏等。
- 跟创建预览面板一样,我们需要为笔记列表栏设置一个
aside
元素,其calss
设置为sider-bar
:
- 添加一个新的数据属性,名为
notes
。这个属性是一个数组,包含了所有的笔记:
2.1.1 添加新建笔记的方法
每一条笔记都应该有下面的属性:
id
:笔记的唯一标识符。title
:笔记的标题,用来显示在笔记列表中。content
:笔记的Markdown格式内容。created
:笔记创建的日期。favorite
:这是一个布尔值,用于表示是否收藏了笔记,已收藏的笔记显示在笔记列表的顶部。
添加一个名为addNote
的方法,它会用默认值创建一个新的笔记对象:
Code:
2.1.2 用 v-on 实现按钮的单机事件
我们需要一个添加笔记的按钮,因此在左侧边栏中添加一个新的按钮,在index.html
文件中加入:
运行一下在浏览器看看效果:
2.1.3 用 v-bind 绑定属性
创建笔记的时候我们并不知道有多少条笔记,如果能够有一个提示,提示现在已经有多少条笔记就更方便了,这里使用 v-bind
指令来绑定title属性(title属性是当鼠标悬浮在元素上方时,可以显示title的信息)
Code:
<button v-bind:title="notes.length + ' note(s) already'">
<!--简写: <button :title="notes.length + ' note(s) already'">
-->
2.1.4 用 v-for 显示列表
想要在左边栏显示笔记列表的标题,则需要使用 v-for
指令来实现,看看需要在index.html
添加的代码:
再次刷新浏览器,添加几条新的笔记,看看效果:
Vue项目:Markdown笔记本(中)相关推荐
- Vue项目在标签中如何书写多个内敛style样式
Vue项目在标签中如何书写多个内敛style样式 例如:对一个数组进行循环,我想给偶数项的添加红色背景,奇数项的添加蓝色背景,这时候就可以用v-bind:style="[]",详细 ...
- vue项目在vscode中编译eslint报错没显示红色波浪线提示
vue项目在vscode中编译eslint报错没显示红色波浪线提示. 如下图所示: 下图是预期效果: 不符合Eslint校验规则的代码位置都能展示出来,这样一目了然.能帮助我们迅速找到报错的位置. 然 ...
- vue项目在IE中显示空白,报错:vuex requires a Promise polyfill in this browser
问题描述 vue项目在非IE内核的浏览器中显示正常,在IE内核浏览器中报错,并显示空白.报错如下: SCRIPT5022: [vuex] vuex requires a Promise polyfi ...
- antimalware service executable占用内存_解决 vue 项目运行过程中内存泄漏问题
vue-cli3.0 内存溢出 JavaScript heap out of memory vue-cli3.0构建的项目,开发过程中,可能会遇到内存溢出的情况,改动一点代码,代码编译,进程就会断掉, ...
- vue项目,webpack中配置src路径别名及使用
默认会有'@'别名,指向src目录,还可以添加自定义别名等等. 使用方法 使用别名一般就三种情况:在js中用,在css中用,在html文档内用 js中用,最简单: import {getName} f ...
- 离职后才搞懂vue项目开发流程中的疑惑点
在离职的最后一个月,帮两位同事申请加薪,确切的说,申请加薪是导火索,我被扣上了哄抬同事工资以提高自己工资的帽子,在推动前后端分离工作中处处碰壁,点燃了压抑许久的离职冲动,领导培养自己四五年,不让声张, ...
- vue项目在ie9中碰到的问题——axios请求拒绝访问
一.axios在IE9下面Promise不能使用. https://www.cnblogs.com/zhengyan/p/8111203.html Pormise的问题,原来是Axios不能直接兼容I ...
- 在Vue 项目 webpack 打包中关于 背景图片的路径问题
第一次发segmentfault ,记录一下关于最近生产环境,开发环境路径问题. 开发环境下我们可以在vue中引入相对路径,但在生产环境,会默认为根目录static,所以我们需要在config 目录下 ...
- 关于VUE项目地图开发中大量点标记绘制一些总结
问题说明 在地图开发中,当地图中绘制大量的标记点后,无论是拖动或者缩放,都会感觉到明显的卡顿现象.(一般超过800个点后就比较明显了).在平时的工作业务中,由于公司的实时监控页面需要展现5000-20 ...
最新文章
- Tomcat源码分析(六)--日志记录器和国际化
- linux 脚本socket通信,Linux实例:用socket通讯远程执行命令
- .NET中Flags枚举的使用
- java thread_Java(多线程Thread)
- 计算机应用怎么拼写,计算机应用本科论文提纲格式范文 计算机应用本科论文提纲如何写...
- verilog设置24进制计数器_阅读笔记:《Verilog HDL入门》第3章 Verilog语言要素
- python docx表格宽度_RPA手把手——python-docx 设置 word 文档中表格格式
- Toolkit.getDefaultToolkit().getScreenSize();获取显示器屏幕大小并使JFrame窗口居中显示
- Cheggit解析器模块分析
- 湖南计算机非全学校推荐,小心!湖南这7所大学害人不浅,毕业证一文不值,各位家长注意了...
- Modbus通讯两种传输方式
- Android开发之 shape的使用
- 类实现接口,必须实现接口的全部方法么?
- java面试简历项目经验,java面试题项目中的难点
- centos journalctl日志查看
- PM3嗅探数据采集密码自动提取密码工具
- java jbutton 省略号_JButton显示省略号
- Docker端口映射实现网络访问
- andorid pppoe拨号上网
- 计算机上自带的打字游戏,在学校上电脑课打字游戏的日子
热门文章
- 考研数学笔记 51~55
- SXSSFWorkbook 转 InputStream
- AD09 DXP保姆级教程系列——005、原理图生成PCB、裁剪板子、3维查看、封装PCB元件
- Python标准库笔记(9) — functools模块
- 高等工程热力学复习05
- 华为超级计算机叫什么名字,华为超级计算机打破世界纪录,是否超越了我国第一的“神威太湖之光”?...
- LVMH和Tiffany的“爱情买卖”,黄了!
- 锐捷交换机部署snooping+DAI功能
- C/C++ 中memset()
- mac 更换淘宝镜像 bad response Not Found 404 (http://ruby.taobao.org/specs.4.8.gz)