2021-07-25 vue笔记-Vue的生命周期和钩子函数

本文详细介绍了Vue.js的生命周期,包括创建、挂载、更新和销毁四个主要阶段,并解释了每个阶段对应的钩子函数的作用及其应用场景。

1.Vue生命周期定义

Vue的生命周期是指:
Vue实例从创建到销毁的过程
Vue的生命周期包括:

生命周期函数 又叫 钩子函数

创建前后:

beforeCreate( 创建前 )

实例还没被创建出来,el和data都没有初始化,不能访问data、method,一般在这个阶段不进行操作

created( 创建后 )

vue实例中的data、method已被初始化,属性也被绑定,但是此时还是虚拟dom,真实dom还没生成,$el 还不可用。这个时候可以调用data和method的数据及方法,created钩子函数是最早可以调用data和method的,故一般在此对数据进行初始化。

挂载前后:

beforeMount( 挂载前)

此时模板已经编译完成,但还没有被渲染至页面中(即为虚拟dom加载为真实dom),一般可以在这里做初始数据的获取

Mounted( 挂载后)

此时模板已经被渲染成真实DOM,用户已经可以看到渲染完成的页面,页面的数据也是通过双向绑定显示data中的数据。 这实例创建期间的最后一个生命周期函数,当执行完 mounted 就表示,实例已经被完全创建好了

更新前后:

beforeUpdate

更新状态,重新渲染之前触发,
然后vue的虚拟dom机制会重新构建虚拟dom与上一次的虚拟dom树利用diff算法进行对比之后重新渲染。
只有view上面的数据变化才会触发beforeUpdate和updated,仅属于data中的数据改变是并不能触发

updated

数据已经更改完成,dom也重新render完成。

销毁前后

beforeDestroy

销毁前执行($destroy方法被调用的时候就会执行),一般在这里善后:清除计时器、清除非指令绑定的事件等等…’)

destroyed

销毁后 (Dom元素存在,只是不再受vue控制),卸载watcher,事件监听,子组件。

在这里插入图片描述

2.Vue执行顺序

1.beforeCreate()
2.created()
3.beforeMounted()
4.mounted()
5.beforeDestroy()
6.destroyed()

3.vue内置方法的执行顺序

1.props
2.methods
3.data
4.computed
5.watch

4.示例
<div id="app">
    <h1>
        {{message}}
    </h1>
    <h1 id="hh">{{num}}</h1>
    <button @click='add'>点击+1</button>
    <button>点击跳转</button>
</div>
<script>
    var app = new Vue({
        el: '#app',
        data: {
            message: 'Hello Vue22222!',
            num: 1995
        },
        methods: {
            fn1() {
                console.log('fn1')
            },
            add() {
                this.num++
            }
        },
        // 以下是VUE的生命周期  
        // 生命周期定义 在一个应用 创建到消亡阶段 在某一时刻 会自动调用的回调函数就叫做生命周期
        // 实例创建之前 内部  new操作符初始化
        beforeCreate() {
            console.log('创建之前beforeCreate ')
            console.log(this.message)
            // console.log(this.fn1())
        },
        // 实例创建之后 内部  new操作符初始化
        created() {
            // 向服务器请求 渲染出 城市天气预报 ajax
            // 用法 数据 方法都可以调用 最快发送AJAX的时刻  
            console.log('创建之前 Created 实例创建之后 ')
            console.log(this.message)
            console.log(this.fn1())

            // 这个时候 有问题的地方 
            var h = document.getElementById('hh')
            console.log('h', h)

            // 因为数据没有完全渲染的关系  如果进行dom操作 就有问题  
        },
        // dom渲染之前  
        beforeMount() {
            console.log('beforeMount')
            var h = document.getElementById('hh')
            console.log('h', h)
            console.log(this.message)
            console.log(this.fn1())
        },
        // dom渲染后
        mounted() {
            // 这个位置是最快可以DOM操作的位置  不会获取到假的节点!!!
            console.log(' Mounted')
            var h = document.getElementById('hh')
            console.log('h', h)
            console.log(this.message)
            console.log(this.fn1())
        },
        // 更新之前 数据和视图联系的数据 更新之前会自动调用
        beforeUpdate() {
            console.log('beforeUpdae')
            var h = document.getElementById('hh')
            console.log('h', h)
            console.log('h', h.innerHTML)
            console.log('this.num',this.num)

        },
        // 更新之后 数据和视图联系的数据 更新之后会自动调用
        updated() {
            console.log('updated')
            var h = document.getElementById('hh')
            console.log('h', h)
            console.log('h', h.innerHTML)
            console.log('this.num',this.num)
            // if(this.num >2000) {
            //     this.num =1999
            // }
        },
        // 销毁之前 
        beforeDestory() {
            console.log(' beforeDestory')
        },
        // 销毁之后
        destoryed(){
            console.log(' destoryed')
            // 跳完页面 上一个页面  没用变量  函数 需要 遍历做  a=null的处理  
        }
    })
    console.log(app)
</script>
Delphi 12.3 作为一款面向 Windows 平台的集成开发环境,由 Embarcadero Technologies 负责其持续演进。该环境以 Object Pascal 语言为核心,并依托 Visual Component Library(VCL)框架,广泛应用于各类桌面软件、数据库系统及企业级解决方案的开发。在此生态中,Excel4Delphi 作为一个重要的社区开源项目,致力于搭建 Delphi 与 Microsoft Excel 之间的高效桥梁,使开发者能够在自研程序中直接调用 Excel 的文档处理、工作表管理、单元格操作及宏执行等功能。 该项目以库文件与组件包的形式提供,开发者将其集成至 Delphi 工程后,即可通过封装良好的接口实现对 Excel 的编程控制。具体功能涵盖创建与编辑工作簿、格式化单元格、批量导入导出数据,乃至执行内置公式与宏指令等高级操作。这一机制显著降低了在财务分析、报表自动生成、数据整理等场景中实现 Excel 功能集成的技术门槛,使开发者无需深入掌握 COM 编程或 Excel 底层 API 即可完成复杂任务。 使用 Excel4Delphi 需具备基础的 Delphi 编程知识,并对 Excel 对象模型有一定理解。实践中需注意不同 Excel 版本间的兼容性,并严格遵循项目文档进行环境配置与依赖部署。此外,操作过程中应遵循文件访问的最佳实践,例如确保目标文件未被独占锁定,并实施完整的异常处理机制,以防数据损毁或程序意外中断。 该项目的持续维护依赖于 Delphi 开发者社区的集体贡献,通过定期更新以适配新版开发环境与 Office 套件,并修复已发现的问题。对于需要深度融合 Excel 功能的 Delphi 应用而言,Excel4Delphi 提供了经过充分测试的可靠代码基础,使开发团队能更专注于业务逻辑与用户体验的优化,从而提升整体开发效率与软件质量。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端OnTheRun

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值