Loading... <!-- wp:paragraph --> <p> vue每个组件都是独立的,每个组件都有一个属于它的生命周期,从一个组件<strong>创建、数据初始化、挂载、更新、销毁</strong>,这就是一个组件所谓的生命周期。</p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p>在这里借用Vue官方的一张图片</p> <!-- /wp:paragraph --> <!-- wp:image --> <figure class="wp-block-image"><img src="https://cn.vuejs.org/images/lifecycle.png" alt="Vue 实例生命周期"style=""></figure> <!-- /wp:image --> <!-- wp:heading --> <h2 id="组件创建阶段">组件创建阶段</h2> <!-- /wp:heading --> <!-- wp:paragraph --> <p>init Events & lifecycle</p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p>初始化事件和生命周期函数</p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p><strong>beforeCreate</strong></p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p>创建阶段第一个生命周期函数。组件的props/data/methods尚未被创建,都处于不可以状态,在这个阶段什么都做不了</p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p>init injections & reactivity</p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p>当前阶段表示正在初始化props,data,methos</p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p><strong>created</strong></p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p>组件的props,data,methods已经创建好,都处于可用状态,但是模板结构尚未构成。</p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p>通常此阶段用于调用methods方法,发起Ajax请求,并且将数据转存到data中</p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p></p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p>Has "el" option</p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p></p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p>会判断是否有el选项。</p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p>如果有el选项会走Yes判断是否有template选项。</p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p>如果没有el选项则会调用$mount方法</p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p></p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p><strong>beforeMount</strong></p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p>将要把内存中编译好的HTML结构渲染到浏览器中。此时浏览器中还没有当前组件的DOM结构。没有什么意义</p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p>Create vm.$el and replace "el" with it</p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p>用内存中编译生成的HTML结构替换掉el属性指定的DOM元素</p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p><strong>mounted</strong></p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p>已经把内存中的HTML结构,成功的渲染到了浏览器之中。此时浏览器中已包含了当前组件的DOM结构。最早操作DOM结构的生命周期函数。</p> <!-- /wp:paragraph --> <!-- wp:heading --> <h2 id="组件运行阶段">组件运行阶段</h2> <!-- /wp:heading --> <!-- wp:paragraph --> <p><strong>beforeUpdate</strong></p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p>将要根据变化过后、最新的数据、重新渲染组件的模板结构。data的数据是最新的,但UI结构不是最新的</p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p>virtual DOM re-render and patch</p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p>根据最新的数据,重新渲染组件的DOM结构</p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p><strong>updated</strong></p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p>已经根据最新的数据,完成了组件DOM结构的重新渲染。此时UI结构跟data数据都是最新的</p> <!-- /wp:paragraph --> <!-- wp:heading --> <h2 id="组件销毁阶段">组件销毁阶段</h2> <!-- /wp:heading --> <!-- wp:paragraph --> <p><strong>beforeDestroy</strong></p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p>将要销毁此组件,但还未销毁,组件还处于正常工作状态</p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p>Teardown watchers,child components and event listeners</p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p>销毁当前组件的数组侦听器、子组件、事件监听</p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p><strong>destroyed</strong></p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p>组件已经被销毁,此组件在浏览器中对应的DOM结构已经被完全移除</p> <!-- /wp:paragraph --> 猜你想看 每日一学:PHP 中的array_pop函数详解 tcping不是windows默认命令, tcping怎么安装? 关于2022年12月9日宝塔严重安全性漏洞被挂马后我的反思 8月30日js学习笔记 jQuery事件 分享一个开源的字体分片工具 每日一学:PHP 中的array_udiff函数详解 每日一学:PHP 中的array_pad函数详解 在这匆匆忙忙的时代,你还会记住你自己吗? Linux 系统安装部署 Redis 完全指南 最后修改:2022 年 06 月 05 日 © 允许规范转载 赞 0 如果觉得我的文章对你有用,请随意赞赏