vue生命周期图示中英文版vue实例生命周期钩子 -凯发k8官方网
vue生命周期图示中英文版vue实例生命周期钩子
知乎上近日有人发起了一个 “react 是不是比 vue 牛皮,为什么?” 的问题,vue.js 作者尤雨溪12月4日正面回应了该问题。以下是尤雨溪回复的一部分:
作为一个个人项目的 vue 没有这样的宣传资源,也并不是为了改变用户。所以从设计的角度上来说,vue 首先考虑的是假设用户只掌握了 web 基础知识 (html, css, js) 的情况下,如何能够最快理解和上手,实现一个看得见摸得着的应用。
--------------
每个 vue 实例在被创建时都要经过一系列的初始化过程——例如,需要设置数据监听、编译模板、将实例挂载到 dom 并在数据变化时更新 dom 等。同时在这个过程中也会运行一些叫做生命周期钩子的函数,这给了用户在不同阶段添加自己的代码的机会。
比如 created 钩子可以用来在一个实例被创建之后执行代码:
new vue({
data: {
a: 1
},
created: function () {
// `this` 指向 vm 实例
console.log('a is: ' this.a)
}
})
// => "a is: 1"
也有一些其它的钩子,在实例生命周期的不同阶段被调用,如 mounted、updated 和 destroyed。生命周期钩子的 this 上下文指向调用它的 vue 实例。
不要在选项属性或回调上使用箭头函数,比如 created: () => console.log(this.a) 或 vm.$watch('a', newvalue => this.mymethod())。因为箭头函数是和父级上下文绑定在一起的,this 不会是如你所预期的 vue 实例,经常导致 uncaught typeerror: cannot read property of undefined 或 uncaught typeerror: this.mymethod is not a function 之类的错误。
生命周期图示(中英文版)
下图展示了实例的生命周期。你不需要立马弄明白所有的东西,不过随着你的不断学习和使用,它的参考价值会越来越高。
vue生命周期英文版
{{ message }}
create 和 mounted 相关
在chrome浏览器里打开,f12看console就能发现beforecreated:el 和 data 并未初始化
created:完成了 data 数据的初始化,el没有
beforemount:完成了 el 和 data 初始化
mounted :完成挂载
el还是 {{message}},这里就是应用的 virtual dom(虚拟dom)技术,先把坑占住了。到后面mounted挂载的时候再把值渲染进去。
update 相关
在 chrome console里执行以下命令
app.message= 'yes !! i do';就能看到data里的值被修改后,将会触发update的操作。
destroy 相关
有关于销毁,暂时还不是很清楚。我们在console里执行下命令对 vue实例进行销毁。销毁完成后,我们再重新改变message的值,vue不再对此动作进行响应了。但是原先生成的dom元素还存在,可以这么理解,执行了destroy操作,后续就不再受vue控制了。
app.$destroy();beforecreate : 举个栗子:可以在这加个loading事件
created :在这结束loading,还做一些初始化,实现函数自执行
mounted : 在这发起后端请求,拿回数据,配合路由钩子做一些事情
beforedestroy: 你确认删除xx吗? destroyed :当前组件已被删除,清空相关内容
转载于:https://www.cnblogs.com/zdz8207/p/vue-lifecycle.html
总结
以上是凯发k8官方网为你收集整理的vue生命周期图示中英文版vue实例生命周期钩子的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇:
- 下一篇: