首页IT科技vue的created函数(Vue中created和mounted详解)

vue的created函数(Vue中created和mounted详解)

时间2025-06-15 07:51:39分类IT科技浏览5201
导读:目录...

目录

一             、生命周期概念

二                   、浏览器渲染过程

三      、生命周期中的浏览器渲染

beforeCreate阶段

created阶段

beforeMount阶段

mounted阶段

四       、使用场景

五                   、常见相关问题

一些页面跳转后, 一些基础数据接口没有重新请求

一            、生命周期概念

通俗地讲             ,生命周期即Vue实例或组件从创建到被消灭的一系列过程                   ,中间的各个节点被称为钩子. vue.js中created方法是一个生命周期钩子函数      , 一个vue实例被生成后会调用这个函数             。 一个vue实例被生成后还要绑定到某个html元素上       , 之后还要进行编译                   ,然后再插入到document中                   。 每一个阶段都会有一个钩子函数            ,方便开发者在不同阶段处理不同逻辑      。 一般可以在created函数中调用ajax获取页面初始化所需的数据       。

二       、浏览器渲染过程

要深刻理解生命周期的各个节点       ,就必须了解浏览器的渲染过程

构建DOM树 构建css规则树,根据执行顺序解析js文件                   。 构建渲染树Render Tree 渲染树布局layout 渲染树绘制

三                    、生命周期中的浏览器渲染

created:已创建                    ,在模板渲染成html前调用            ,即通常初始化某些属性值,然后再渲染成视图            。 mounted:已挂载                    ,在模板渲染成html后调用                   ,通常是初始化页面完成后,再对html的dom节点进行一些操作       。 通常created使用的次数多             ,而mounted是在一些插件或组件的使用中进行操作                   , 比如插件chart.js的使用: var ctx = document.getElementById(ID); 通常会有这一步      ,而如果你写入组件中             , 你会发现在created中无法对chart进行一些初始化配置                   , 一定要等这个html渲染完后才可以进行      ,那么mounted就是不二之选                    。 生命周期 是否获取dom节点 是否获取data 是否获取methods beforeCreate 否 否 否 created 否 是 是 beforeMount 否 是 是 mounted 是 是 是

beforeCreate阶段

对浏览器来说       ,整个渲染流程尚未开始或者说准备开始                   ,对vue来说            ,实例尚未被初始化       ,data observer和 event/watcher也还未被调用                    ,在此阶段            ,对data            、methods或文档节点的调用现在无法得到正确的数据            。

created阶段

对浏览器来说,渲染整个HTML文档时,dom节点、css规则树与js文件被解析后                    ,但是没有进入被浏览器render过程                   ,上述资源是尚未挂载在页面上,也就是在vue生命周期中对应的created阶段             ,实例已经被初始化                   ,但是还没有挂载至 $el上      ,所以我们无法获取到对应的节点             ,但是此时我们是可以获取到vue中data与methods中的数据的

beforeMount阶段

实际上与created阶段类似                   ,节点尚未挂载      ,但是依旧可以获取到data与methods中的数据。

mounted阶段

对浏览器来说       ,已经完成了dom与css规则树的render                   ,并完成对render tree进行了布局            ,而浏览器收到这一指令       ,调用渲染器的paint()在屏幕上显示                    ,而对于vue来说            ,在mounted阶段,vue的template成功挂载在$el中                    ,此时一个完整的页面已经能够显示在浏览器中                   ,所以在这个阶段,即可以调用节点了(关于这一点             ,在笔者测试中                   ,在mounted方法中打断点然后run      ,依旧能够在浏览器中看到整体的页面)                    。

四                    、使用场景

通过浏览器的渲染过程             ,可以总结出created和mounted的使用场景

    created:通常用于初始化某些属性值                   ,例如data中的数据      ,然后再渲染成视图                   。

    mounted:通常在初始化页面完成后       ,对html的dom节点进行需要的操作。

因此                   ,在created中            ,是无法进行DOM操作的       ,而mounted可以获取渲染出来的所有属性值             。

五                   、常见相关问题

一些页面跳转后, 一些基础数据接口没有重新请求

举个简单的例子 created(){ this.init(); }, mounted() { this.init(); }, methods: { init() { this.getList(); this.getdetailById(); this.getFicts(); } }, }

有用请点赞                    ,养成良好习惯!

疑问、交流             、鼓励请留言!

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
dvd外置刻录机推荐(最小的外置DVD刻录机) nodejs express(解决node.js中bcrypt遇到的安装问题)