详解Vue生命周期---1
目录
正文
Vue实例的生命周期全过程(图)
![](https://images2015.cnblogs.com/blog/1060770/201707/1060770-20170716220427050-1577910455.png)
![](/Users/lenovo/AppData/Local/YNote/data/qq558635343CE3D787D7910E2E25B05D68/8a48e0c67a614332908d1250100b4ef6/lifecycle.png)
在beforeCreate和created钩子函数间的生命周期
![](https://images2015.cnblogs.com/blog/1060770/201707/1060770-20170716220710816-705092507.png)
![](/Users/lenovo/AppData/Local/YNote/data/qq558635343CE3D787D7910E2E25B05D68/0fbc190555594da78642f02c13a9a842/32l9ysj@3%255Bo7i%2560rjsovjn50.png)
created钩子函数和beforeMount间的生命周期
![](https://images2015.cnblogs.com/blog/1060770/201707/1060770-20170716220744363-113973743.png)
![](/Users/lenovo/AppData/Local/YNote/data/qq558635343CE3D787D7910E2E25B05D68/f06f4d51be0d4f139934c98a02227585/d%257Bklfk%2528f%257Eir%255Ddyeq49167%2528l.png)
el选项的有无对生命周期过程的影响
![](https://common.cnblogs.com/images/copycode.gif)
new Vue({
el: '#app',
beforeCreate: function () {
console.log('调用了beforeCreat钩子函数')
},
created: function () {
console.log('调用了created钩子函数')
},
beforeMount: function () {
console.log('调用了beforeMount钩子函数')
},
mounted: function () {
console.log('调用了mounted钩子函数')
}
})
![](https://common.cnblogs.com/images/copycode.gif)
![](https://images2015.cnblogs.com/blog/1060770/201707/1060770-20170716220834722-1540352575.png)
![](/Users/lenovo/AppData/Local/YNote/data/qq558635343CE3D787D7910E2E25B05D68/0e5c62a49e054f9b9ec177b238f78b2f/ef%257Eb%2525s2%255Dk6il1di%255D93%2528%257Ei04.png)
![](https://common.cnblogs.com/images/copycode.gif)
new Vue({
beforeCreate: function () {
console.log('调用了beforeCreat钩子函数')
},
created: function () {
console.log('调用了created钩子函数')
},
beforeMount: function () {
console.log('调用了beforeMount钩子函数')
},
mounted: function () {
console.log('调用了mounted钩子函数')
}
})
![](https://common.cnblogs.com/images/copycode.gif)
![](/Users/lenovo/AppData/Local/YNote/data/qq558635343CE3D787D7910E2E25B05D68/e240a8fcd4a44581840667b574a58cbc/nkra%255Dc%25246usf2ev7d%2528%2529wtv3g.png)
![](https://images2015.cnblogs.com/blog/1060770/201707/1060770-20170716220900332-377637202.png)
![](https://common.cnblogs.com/images/copycode.gif)
var vm = new Vue({
beforeCreate: function () {
console.log('调用了beforeCreat钩子函数')
},
created: function () {
console.log('调用了created钩子函数')
},
beforeMount: function () {
console.log('调用了beforeMount钩子函数')
},
mounted: function () {
console.log('调用了mounted钩子函数')
}
})
vm.$mount('#app')
![](https://common.cnblogs.com/images/copycode.gif)
![](/Users/lenovo/AppData/Local/YNote/data/qq558635343CE3D787D7910E2E25B05D68/82606dfd088c4177ae20799d8b08880e/ef%257Eb%2525s2%255Dk6il1di%255D93%2528%257Ei04.png)
![](https://images2015.cnblogs.com/blog/1060770/201707/1060770-20170716220914082-523984759.png)
template参数选项的有无对生命周期的影响
![](/Users/lenovo/AppData/Local/YNote/data/qq558635343CE3D787D7910E2E25B05D68/764023f62110462e881776a17dc2e5fb/%255Bji%257Bbzw9p86su6n_24djird.png)
![](https://images2015.cnblogs.com/blog/1060770/201707/1060770-20170716220933019-358445376.png)
new Vue({
el: '#app',
template: '<div id="app"><p>模板在templated参数中找到了哟~</p></div>'
})
demo:
![](https://images2015.cnblogs.com/blog/1060770/201707/1060770-20170716221034738-1047392533.png)
![](/Users/lenovo/AppData/Local/YNote/data/qq558635343CE3D787D7910E2E25B05D68/ef7965eda3bd4c7ebcb64811c6640a05/%255B%255D%255D6%2524pyi%2525%255Bx63%2529w3%257Dqelx%25252.png)
<div id="app"><p>模板是在外部HTML中找到的~</p></div>
创建对象实例:
new Vue({
el: '#app'
})
![](https://images2015.cnblogs.com/blog/1060770/201707/1060770-20170716221107316-1110812855.png)
![](/Users/lenovo/AppData/Local/YNote/data/qq558635343CE3D787D7910E2E25B05D68/2e49f2bfd1b54404995aae88ae19870e/ec0q5%2525l%2525dx4d4ere@n%25288e8d.png)
<div id="app"><p>模板是在外部HTML中找到的~</p></div>
new Vue({
el: '#app',
template: '<div id="app"><p>模板在templated参数中找到了哟~</p></div>'
})
![](https://images2015.cnblogs.com/blog/1060770/201707/1060770-20170716221128019-208776221.png)
![](/Users/lenovo/AppData/Local/YNote/data/qq558635343CE3D787D7910E2E25B05D68/d8923da96a4b4fbc9f12d2432735df05/d%2525o56q%2525gwypcuy5t%257Bpcwoah.png)
![](https://common.cnblogs.com/images/copycode.gif)
new Vue({
el: '#demo',
render (createElement) {
return (....)
}
})
![](https://common.cnblogs.com/images/copycode.gif)
Vue的编译过程——把模板编译成 render 函数
![](https://common.cnblogs.com/images/copycode.gif)
<div>
<header>
<h1>I'm a template!</h1>
</header>
<p v-if="message">
{{ message }}
</p>
<p v-else>
No message.
</p>
</div>
![](https://common.cnblogs.com/images/copycode.gif)
function anonymous() {
with(this){return _c('div',[_m(0),(message)?_c('p',[_v(_s(message))]):_c('p',[_v("No message.")])])}
}
beforeMount和mounted钩子函数间的生命周期
![](/Users/lenovo/AppData/Local/YNote/data/qq558635343CE3D787D7910E2E25B05D68/29a766b99dc04dd8934bd5b3c9e2e6b8/ugi61u_vc%257Ecra%2529v327_2kyg.png)
![](https://images2015.cnblogs.com/blog/1060770/201707/1060770-20170716221246832-16408336.png)
对于这一点,我也感到有些迷惑,百度后之后也没什么头绪,最后我思考的结果是这样的:正因为render函数和template选项的“优先级”比外部HTML要高,所以,最后一般会存在一个外部HTML模板被Vue实例本身配置的模板所“替代”的过程也就是上图所说的 “replace”
beforeUpdate钩子函数和updated钩子函数间的生命周期
![](/Users/lenovo/AppData/Local/YNote/data/qq558635343CE3D787D7910E2E25B05D68/d6c93ea055da422ead04e167b2971352/b%2529%257B%255Dsmm340a%255Bd2v2mx52q_w.png)
![](https://images2015.cnblogs.com/blog/1060770/201707/1060770-20170716221345957-955065712.png)
![](https://common.cnblogs.com/images/copycode.gif)
var vm = new Vue({
el: '#app',
data: {
number: 1
},
template: '<div id="app"><p></p></div>',
beforeUpdate: function () {
console.log('调用了beforeUpdate钩子函数')
},
updated: function () {
console.log('调用了updated钩子函数')
}
})
vm.number = 2
![](https://common.cnblogs.com/images/copycode.gif)
![](/Users/lenovo/AppData/Local/YNote/data/qq558635343CE3D787D7910E2E25B05D68/8f32de57ce8e4933a727ea84d05ed29b/qj4dw@ms%25255ry%2525%257Bz%25254%257Bpsxw7.png)
![](https://images2015.cnblogs.com/blog/1060770/201707/1060770-20170716221409738-1446159117.png)
![](https://common.cnblogs.com/images/copycode.gif)
var vm = new Vue({
el: '#app',
data: {
number: 1
},
// 在模板中使用number这个数据
template: '<div id="app"><p> {{ number }} </p></div>',
beforeUpdate: function () {
console.log('调用了beforeUpdate钩子函数')
},
updated: function () {
console.log('调用了updated钩子函数')
}
})
vm.number = 2
![](https://common.cnblogs.com/images/copycode.gif)
![](https://images2015.cnblogs.com/blog/1060770/201707/1060770-20170716221437207-953445028.png)
![](/Users/lenovo/AppData/Local/YNote/data/qq558635343CE3D787D7910E2E25B05D68/568e6a0ac02a4e1c8610d379c5e4e6f5/_%255B11g3z831z@n1p%2524j%255Dji%257D@r.png)
beforeDestroy和destroyed钩子函数间的生命周期
![](https://images2015.cnblogs.com/blog/1060770/201707/1060770-20170716221516332-283548713.png)
![](/Users/lenovo/AppData/Local/YNote/data/qq558635343CE3D787D7910E2E25B05D68/6d19f1b99b7a46af9f4c891c7ae2c1bd/h%257Byxizur5%2560%257Dy1e98%2560xr%257Bi%255B0.png)
.
详解Vue生命周期---1的更多相关文章
- 【Vue笔记】-- 详解vue生命周期
针对于Vue的生命周期进行详细的说明,方面加深对各个方法的引用. 引言: 前几天重新回顾vue官网时,看到vue的生命周期,想着自己用vue开发了快一年了,就总结总结vue知识,再次加深自己对vue的 ...
- 详解vue生命周期
vue生命周期 @(vue)[生命周期] 前言 在使用vue一个多礼拜后,感觉现在还停留在初级阶段,虽然知道怎么和后端做数据交互,但是对于mounted这个挂载还不是很清楚的.放大之,对vue的生命周 ...
- 详解vue生命周期及每个阶段适合进行的操作
VUE生命周期的四个阶段 create 创建 -------- 创建vue实例并初始化 mount 挂载 -------- 把vue实例和视图进行关联 update 更新 ------- 监听数据与视 ...
- 【Vue】详解Vue生命周期
Vue实例的生命周期全过程(图) (这里的红边圆角矩形内的都是对应的Vue实例的钩子函数) 在beforeCreate和created钩子函数间的生命周期 在beforeCreate和created之 ...
- 实例化vue发生了什么(详解vue生命周期)
const app = new Vue({ el:"#app', data:{ message:'hello,lifePeriod' }, methods:{ init(){ console ...
- Vue 实例详解与生命周期
Vue 实例详解与生命周期 Vue 的实例是 Vue 框架的入口,其实也就是前端的 ViewModel,它包含了页面中的业务逻辑处理.数据模型等,当然它也有自己的一系列的生命周期的事件钩子,辅助我们进 ...
- 05-Vue入门系列之Vue实例详解与生命周期
Vue的实例是Vue框架的入口,其实也就是前端的ViewModel,它包含了页面中的业务逻辑处理.数据模型等,当然它也有自己的一系列的生命周期的事件钩子,辅助我们进行对整个Vue实例生成.编译.挂着. ...
- Vue入门系列(五)Vue实例详解与生命周期
Vue官网: https://cn.vuejs.org/v2/guide/forms.html#基础用法 [入门系列] (一) http://www.cnblogs.com/gdsblog/p/78 ...
- Vue实例详解与生命周期
http://www.jianshu.com/p/b5858f1e6e76 Vue的实例是Vue框架的入口,其实也就是前端的ViewModel,它包含了页面中的业务逻辑处理.数据模型等,当然它也有自己 ...
随机推荐
- 成功安装SQL Server实例后 无法找到SQL Server Configuration Manager工具的解决方案
有一次成功安装SQL Server实例后 ,但是在所有程序中无法找到SQL Server Configuration Manager工具,以下步骤是我们当时的解决方案.最后成功将这个工具的转移到了桌面 ...
- java8-10-Stream的终止操作
Stream的终止操作 * allMatch 是否匹配所有 * anyMatch 是否匹配一个 * noneMatch 是否没有匹配一个 * findFirst 返回第一个 * count ...
- 求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222。
方法一: var num = ""; var nums = []; var a = Number(prompt());//所要拼接的数字 var b = Number(prompt ...
- WPF 快捷键
原文:WPF 快捷键 <p><pre name="code" class="csharp"> 前台 <Window.Resourc ...
- 第二章 简单的HTTP协议
第二章 简单的HTTP协议 针对HTTP协议结构进行讲解 1.通过请求和响应的交换来达成通信目的 应用HTTP协议时,必定是一端担任客户端角色,另一端担任服务器端角色. [请求报文]是由请求方法.UR ...
- 利用re处理数据
re模块为Python提供正则表达式功能,我们可以用它来处理数据 大多数时候我们用Python读取文件数据读进来都是字符串,想要提取里面想要的数据用正则表达式是个很不错的手段 下面是一个从读取数据中提 ...
- 【洛谷4585】[FJOI2015] 火星商店问题(线段树分治)
点此看题面 大致题意: 有\(n\)家店,每个商品有一个标价.每天,都可能有某家商店进货,也可能有某人去购物.一个人在购物时,会于编号在区间\([L_i,R_i]\)的商店里挑选一件进货\(d_i\) ...
- 使用composer安装Larave提示“Changed current directory to C:/Users/Administrator/AppData/Roaming/Composer”
解决办法: 根据官方手册执行composer global require "laravel/installer" 显示Changed current directory to C ...
- Note | 常用指令,工具,教程和经验笔记
目录 图像处理 机器学习和数学 编程环境和工具 写作工具 其他 图像处理 获取图像频域并分解为高低频:https://www.cnblogs.com/RyanXing/p/11630493.html ...
- Java连载41-this关键字其他注意事项、static方法
一.this关键字 1.this在多数情况下都会省略 2.this不能用在含有static的方法之中. 3.static的方法的调用是不需要对象的,直接使用格式:类名.方法名:没有当前对象,自然不能访 ...