详解vue生命周期

本文详细探讨了Vue实例从创建到销毁的整个过程,即Vue的生命周期。通过官方图表,展示了在不同阶段可用的生命周期钩子函数,如beforeCreate、created、beforeMount等,并提供了示例代码以供在浏览器中运行,观察它们在Vue对象生命周期中的作用。利用这些生命周期钩子,开发者可以更好地控制DOM中的对象创建、更新和删除流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先,每个Vue实例在被创建之前都要经过一系列的初始化过程,这个过程就是vue的生命周期。首先看一张官方图片:
Vue生命周期
可以看到在vue一整个的生命周期中会有很多钩子函数提供给我们在vue生命周期不同的时刻进行操作, 那么先列出所有的钩子函数,然后我们再一一详解:

  • beforeCreate
  • created
  • beforeMount
  • mounted
  • beforeUpdate
  • updated
  • activated
  • deactivated
  • beforeDestroy
  • destroyed

来波代码,复制在浏览器中运行,打开console查看就行了:

<script>
	var Vcontent = {
            template: `
              <div>
                <span>{{msg}}</span>
                <button @click="changeDate">改变</button>
              </div>
            `,
            data() {
                return {
                    msg: 'helloword'
                }
            },
            methods: {
                changeDate() {
                    this.msg = this.msg + '哈哈哈'
                }
            },
            beforeCreate:function() {
				// 组件创建之前
				console.log(this.msg,'===============');
			},
			created:function() {
				// 组件创建之后

				// 使用该组件,就会调用created方法 在created这个方法中可以操作后端的数据,数据响应视图
				// 应用: 发起ajax请求
				console.log(this.msg,'++++++++++++');
				this.msg = '改变了吧'
			},
			beforeMount:function  () {
                // 挂载数据到DOM之前会调用
				console.log(document.getElementById('app'),'---------------');
            },
            //从这个方法开始: 我们操作的都是虚拟 dom 更新数据时候;都是有 vue操作DOM 
            // 证明了; vue 是数据驱动视图


			mounted:function() {
				// 挂载数据到DOM之后会调用  Vue 作用以后的DOM
				console.log(document.getElementById('app'),'???????????????');
			},
			beforeUpdate(){
				// 在更新DOM之前 调用此钩子函数 应用:可以获取原始的DOM
                console.log(document.getElementById('app').innerHTML,'>>>>>>>>>>>>>>');
                console.log('数据更新之前')
			},
			updated(){
				// 在更新DOM之后 调用此钩子函数 应用:可以获取最新的DOM
                // console.log(document.getElementById('app').innerHTML,'<<<<<<<<<<<<<<');
                console.log('数据更新之后')
            },
            beforeDestroy(){
                // 组件销毁之前
				console.log('beforeDestroy');
			},
			destroyed(){
                // 组件销毁之后
				console.log('destroyed');
			},
			activated(){
				console.log('组件被激活了');
			},
			deactivated(){
				console.log('组件被停用了');
			}
        }
        // Vue的内置组件,能在组件的切换过程中将状态保留在内存中父,防止重复渲染DOM
        var App = {
            template: `
              <div>
                <keep-alive>
                 <Vcontent v-if='isShow'></Vcontent>
                </keep-alive> 
                 <button @click='changeDom'>改变生死</button>
              </div>
            `,
            data() {
                return {
                    isShow: true,
                }
            },
            components: {
                Vcontent,
            },
            methods:{
                changeDom(){
                    this.isShow = !this.isShow
                }
            }
        }
        new Vue({
            el: "#app",
            template: `<App></App>`,
            components: {
                App,
            }
        })
    </script>
总结

我们可以使用生命周期钩子在Vue对象生命周期的不同阶段添加我们的自定义代码。它将帮助我们控制在DOM中创建对象时创建的流程,以及更新和删除对象。

内容概要:该研究通过在黑龙江省某示范村进行24小时实地测试,比较了燃煤炉具与自动/手动进料生物质炉具的污染物排放特征。结果显示,生物质炉具相比燃煤炉具显著降低了PM2.5、CO和SO2的排放(自动进料分别降低41.2%、54.3%、40.0%;手动进料降低35.3%、22.1%、20.0%),但NOx排放未降低甚至有所增加。研究还发现,经济性和便利性是影响生物质炉具推广的重要因素。该研究不仅提供了实际排放数据支持,还通过Python代码详细复现了排放特征比较、减排效果计算和结果可视化,进一步探讨了燃料性质、动态排放特征、碳平衡计算以及政策建议。 适合人群:从事环境科学研究的学者、政府环保部门工作人员、能源政策制定者、关注农村能源转型的社会人士。 使用场景及目标:①评估生物质炉具在农村地区的推广潜力;②为政策制定者提供科学依据,优化补贴政策;③帮助研究人员深入了解生物质炉具的排放特征和技术改进方向;④为企业研发更高效的生物质炉具提供参考。 其他说明:该研究通过大量数据分析和模拟,揭示了生物质炉具在实际应用中的优点和挑战,特别是NOx排放增加的问题。研究还提出了多项具体的技术改进方向和政策建议,如优化进料方式、提高热效率、建设本地颗粒厂等,为生物质炉具的广泛推广提供了可行路径。此外,研究还开发了一个智能政策建议生成系统,可以根据不同地区的特征定制化生成政策建议,为农村能源转型提供了有力支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值