Vue系列之 => 钩子函数生命周期
<!DOCTYPE html>
<html lang="en"> <head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script src="./lib//Vue2.5.17.js"></script>
<script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>
<link rel="stylesheet" href="./lib/bootstrap-3.3.7-dist/css/bootstrap.css">
</head> <body>
<div id="app">
<input type="button" value="修改msg数据" class="btn btn-primary" @click="changemsg">
<h3 id="title">{{ msg }}</h3>
</div> <script>
//创建vue实例
var vm = new Vue({
el : "#app",
data : {
msg : "ok"
},
methods : {
show(){
console.log("执行了show方法");
},
changemsg(){
this.msg = "No"
}
},
beforeCreate() { //这是遇到的第一个生命周期函数,表示实例完全被创建出来之前,会执行它。
// console.log(this.msg); undefined 说明此时未拿到data数据
// this.show() 报错 此时methods未被初始化
//结论,在beforeCreate生命周期函数执行的时候,data和methods中的数据都没有被初始化
},
created(){ //这是遇到的第二个生命周期函数
console.log(this.msg);
this.show();
//如果要调用methods中的方法或操作data中的数据,最早只能在created中去操作。
},
beforeMount(){ //这是遇到的第三个生命周期函数,表示模板已经在内存中编译完成了,但是尚未挂载到页面
console.log(document.getElementById("title").innerText); //{{ msg }}
//在beforeMount执行的时候,页面中的元素还没有被渲染出来,只是之前写的模板字符串
},
mounted(){ //这是遇到的第4个生命周期函数,表示内存中的模板已经挂载页面中。
console.log(document.getElementById("title").innerText); //ok
//注意:mounted是 《实例创建期间》 的最后一个生命周期函数,当执行完mounted就表示
//实例已经被完全创建好了,此时,如果没有后续操作,这个实例就在内存中。
}, //接下来是运行中的两个事件
beforeUpdate(){ //这时候,表示数据在被更新的时候界面还没有被更新,数据已经被更新了。
//console.log("界面上元素的内容是:" + document.getElementById("title").innerText);//ok
//console.log("data中的msg数据是:" + this.msg); //no
//当执行berforeUpdate的时候,页面中显示的数据还是旧数据,此时data数据中的数据是最新的,页面尚未和data的数据同步。
},
updated(){
console.log("界面上元素的内容是:" + document.getElementById("title").innerText);//no
console.log("data中的msg数据是:" + this.msg); //no
//updated 事件执行的时候,页面和data数据已经保持同步了,都是最新的。
}
//当执行beforeDestroy钩子函数的时候,Vue实例就已经从运行阶段,进入到了销毁阶段;
//当执行beforeDestroy的时候,实例身上所有的data和所有的methods以及过滤器,指令。。等处于可用的状态,此时,还没有真正执行销毁的过程
//当执行destroyed 钩子函数的时候,组件已经完全被销毁,所有的数据都不可用。
})
</script>
</body> </html>
Vue系列之 => 钩子函数生命周期的更多相关文章
- Vue钩子函数生命周期实例详解
vue生命周期简介 Vue实例有一个完整的生命周期,也就是从开始创建.初始化数据.编译模板.挂载Dom.渲染→更新→渲染.卸载等一系列过程,我们称这是Vue的生命周期.通俗说就是Vue实例从创建到销毁 ...
- 【vue】钩子函数生命周期
图1 图2: 图3 相关资料:http://www.zhimengzhe.com/Javascriptjiaocheng/236707.html https://segmentfault.com ...
- Vue – 基础学习(1):对生命周期和钩子函的理解
一.简介 先贴一下官网对生命周期/钩子函数的说明(先贴为敬):所有的生命周期钩子自动绑定 this 上下文到实例中,因此你可以访问数据,对属性和方法进行运算.这意味着你不能使用箭头函数来定义一个生命周 ...
- Vue 实例详解与生命周期
Vue 实例详解与生命周期 Vue 的实例是 Vue 框架的入口,其实也就是前端的 ViewModel,它包含了页面中的业务逻辑处理.数据模型等,当然它也有自己的一系列的生命周期的事件钩子,辅助我们进 ...
- 【微信小程序开发•系列文章六】生命周期和路由
这篇文章理论的知识比较多一些,都是个人观点,描述有失妥当的地方希望读者指出. [微信小程序开发•系列文章一]入门 [微信小程序开发•系列文章二]视图层 [微信小程序开发•系列文章三]数据层 [微信小程 ...
- React 函数生命周期
React 函数生命周期基础 1 ,概念 在组件创建.到加载到页面上运行.以及组件被销毁的过程中,总是伴随着各种各样的事件,这些在组件特定时期,触发的事件,统称为组件的生命周期:* 2,组件生命周 ...
- vue学习(五)生命周期 的钩子函数
生命周期的钩子函数 主要有以下几种 beforeCreate created beforeMount mounted beforeUpdate updated activated deactivate ...
- [前端] VUE基础 (5) (过滤器、生命周期、钩子函数)
一.过滤器 过滤器分为局部过滤器和全局过滤器. 1.局部过滤器 <body> <div id="app"> </div> <script ...
- Vue入门系列(五)Vue实例详解与生命周期
Vue官网: https://cn.vuejs.org/v2/guide/forms.html#基础用法 [入门系列] (一) http://www.cnblogs.com/gdsblog/p/78 ...
随机推荐
- Appium-两个小报错
(1) 执行脚本appium报错:> info: [debug] Emulator not running appium设置中取消勾选launch avd解决 (2)执行脚本python ...
- java kafka 生产者消费者demo
一.修改kafka server.porperties的ip是你本机的ip listeners=PLAINTEXT://192.168.111.130:9092 二.生产者的例子 import o ...
- linux新增动态库后可执行程序找不到的问题
linux为了加快程式执行时对共享库的定位速度,避免使用搜索路径查找共享库的低效率,所以是直接读取库列表文档 /etc/ld.so.cache 从中进行搜索./etc/ld.so.cache 是个非文 ...
- CentOS SSH免密登陆
#环境说明客户机:Mac OS X服务器:CentOS 6.5客户端:OpenSSH,OS X及大多数Linux都内置了OpenSSH.’ssh -v’命令可以查看版本. #大致流程1.在客户机创建一 ...
- windows安装nginx并存放静态资源
1.将nginx-windows.zip下载下来,然后点击nginx.exe 如果一闪而过并且打开网页输入localhost显示无法访问,打开error.log文件:No mapping for th ...
- 【Mock】mock-server 环境搭建
前言 mock 除了用在单元测试过程中,还有一个用途,当前端开发在开发页面的时候,需要服务端提供 API 接口 此时服务端没开发完成,或者说没搭建测试环境,这个时候前端开发会自己 mock一个 api ...
- pip安装提示pkg_resources.DistributionNotFound: pip==18.1
在用pip install安装依赖的时候提示pkg_resources.DistributionNotFound: pip==18.1,更新一下pip就可以了 easy_install pip==18 ...
- 小程序支持连Wi-Fi,代码包到4M
小程序又开发新能力了:1 更多硬件连接功能等着你.在商场等场所,用户以往要用微信连Wi-Fi,要扫二维码并关注公众号,点击菜单里的“连Wi-Fi”才能使用上网络.连个Wi-Fi何必让用户经过两道坎? ...
- 敏捷开发— —Scrum 学习笔记
敏捷开发模式是一种从1990年代开始逐渐引起广泛关注的一些新型软件开发方法,是一种应对快速变化的需求的一种软件开发能力.它们的具体名称.理念.过程.术语都不尽相同,相对于"非敏捷" ...
- sublime的lua插件
1.语法检测插件~ sublimelinter sublimelinter-lua sublimelinter-luacheck 以上插件装好以后,在环境变量里面有加上lua.exe就ok了! 这个就 ...