vue生命周期-mounted和created的区别

vue生命周期-mounted和created的区别,第1张

>

created:在模板渲染成html前调用,即通常初始化某些属性值,然后再渲染成视图。挂载阶段还没有开始,$el属性目前不可见。

mounted:在模板渲染成html后调用,通常是初始化页面完成后,再对html的dom节点进行一些需要的 *** 作。el被新创建的vm$el替换,并挂载到实例上去之后调用该钩子。

beforeCreate 创建之前:已经完成了 初始化事件和生命周期

created 创建完成:已经完成了 初始化注册和响应

beforeMount 挂载之前:已经完成了模板渲染

mounted :挂载之后:已完成HTML虚拟化,创建了el节点 可以 *** 作DOM了

beforeDestroy :摧毁之前:整个vue都处在实时监控空渲染和更新

destroyed: 已摧毁,已经摧毁了观察者,子元素和事件监听

created:在模板渲染成html前调用,即通常初始化某些属性值,然后再渲染成视图。

mounted:在模板渲染成html后调用,通常是初始化页面完成后,再对html的dom节点进行一些需要的 *** 作。

挂载到节点上的初始化方法通常用mounted去 *** 作,主动调起的用methods里面封装方法。

数据初始化一般放到created里面,这样可以及早发请求获取数据,如果有依赖dom必须存在的情况,就放到mounted(){this$nextTick(() => { / code / })}里面

Vue是异步执行dom更新的,一旦观察到数据变化,Vue就会开启一个队列,然后把在同一个事件循环 (event loop) 当中观察到数据变化的 watcher 推送进这个队列。如果这个watcher被触发多次,只会被推送到队列一次。这种缓冲行为可以有效的去掉重复数据造成的不必要的计算和DOm *** 作。而在下一个事件循环时,Vue会清空队列,并进行必要的DOM更新。

首先你应该知道:beforeCreate(),Created()每一个生命周期的作用和不同。

1 beforeCreate此阶段为实例初始化之后,此时的数据观察和事件机制都未形成,不能获得DOM节点

2 created阶段vue实例已经创建,但仍然不能获取DOM元素。

3 mounted是平时我们使用最多的函数了,一般我们的异步请求都写在这里。在这个阶段,数据和DOM都已被渲染出来。

create 和 mounted 相关

另外在标红处,我们能发现el还是 {{message}},这里就是应用的 Virtual DOM(虚拟Dom)技术,先把坑占住了。到后面mounted挂载的时候再把值渲染进去。

这里我们在 chrome console里执行以下命令

下面就能看到data里的值被修改后,将会触发update的 *** 作。

有关于销毁,暂时还不是很清楚。我们在console里执行下命令对 vue实例进行销毁。销毁完成后,我们再重新改变message的值,vue不再对此动作进行响应了。但是原先生成的dom元素还存在,可以这么理解,执行了destroy *** 作,后续就不再受vue控制了。

这么多钩子函数,我们怎么用呢,我想大家可能有这样的疑问吧,我也有,哈哈哈。

我们从图中看两个节点:

其实两者比较好理解,通常created使用的次数多一般用于接口获取数据,而mounted通常是在一些插件的使用或者组件的使用中进行 *** 作,比如插件chartjs的使用: var ctx = documentgetElementById(ID) ; 通常会有这一步,而如果你写入组件中,你会发现在created中无法对chart进行一些初始化配置,一定要等这个html渲染完后才可以进行,那么mounted就是不二之选。下面看一个例子(用组件)。

可以看到输出如下:

可以看到都在created赋予初始值的情况下成功渲染出来了。

但是同时看console台如下:

可以看到第一个报了错,实际是因为找不到id,getElementById(ID) 并没有找到元素,原因如下:

在created的时候,视图中的html并没有渲染出来,所以此时如果直接去 *** 作html的dom节点,一定找不到相关的元素而在mounted中,由于此时html已经渲染出来了,所以可以直接 *** 作dom节点,故输出了上图结果。

以上就是我自己总结的mounted和mounted的区别,写的比较简陋,记录下来,加深印象。

以上就是关于vue生命周期-mounted和created的区别全部的内容,包括:vue生命周期-mounted和created的区别、vue面试题大全、vue中生命周期created和mouted的区别等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9612645.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存