VUE生命周期

Vue生命周期的介绍:

创建,使用,更新数据,销毁

生命周期的作用:在Vue执行的过程中,可以根据不同的生命周期,让程序员在指定的时间去执行某些额外的操作。

生命周期分为:四个阶段8个函数

vue2:

vue2:
[
      'beforeCreate',  # 对象创建好了,但还没有初始化
      'created',  # 对象已经初始化完成
      'beforeMount', # vue实例已经可以使用,但是vue中的数据还没有挂载到页面上(VDom)
      'mounted',  # vue数据已经挂载到页面上
      'beforeUpdate', # vue监听到数据发生变化,vue内部正在处理数据,页面还没有处理完成
      'updated',  # 更新的数据已经与页面处理完成
      'beforeDestroy', # vue实例即将被销毁
      'destroyed',   # vue实例被销毁
      'activated',
      'deactivated',
      'errorCaptured',
      'serverPrefetch',
      'renderTracked',
      'renderTriggered'
  ]

vue3:

vue3:
 const {
      // lifecycle
      created,
      beforeMount,
      mounted,
      beforeUpdate,
      updated,
      activated,
      deactivated,
      beforeDestroy,
      beforeUnmount,(销毁前)
      destroyed,
      unmounted,(销毁后)
      render,
      renderTracked,
      renderTriggered,
      errorCaptured,
      serverPrefetch
    } = options;

 

<body>

    <!-- 使用vue开发前端页面,必须在页面给出vue所控制(管理)的区域 -->
    <div id="app">
        <p>{{msg}}</p>
        <p>{{num}}</p>
        <button @click="num++">++++++++</button>
    </div>
    <script src="./js/vue3.js"></script>

    <script>
        // 1. 创建vue实例
        const app = Vue.createApp({
            data() {
                return {
                    msg: "你好",
                    num: 10
                }
            },
            methods: {},
            watch: {},
            computed: {},
            // 生命周期函数
            // vue实例创建出来了,但是还没有初始化
            beforeCreate() {
                console.log("beforeCreate");
            },
            // vue对象创建完成,并已经初始化,接下来vue需要在内存中开始创建对应的html虚拟模版(虚拟dom)
            created() {
                console.log("created");
            },
            // vue已经将虚拟dom创建完成,在内存中vue的数据与dom节点已经绑定
            // 但是html页面并未真正渲染(挂载)
            beforeMount() {
                console.log("beforeMount");
            },
            // 将虚拟dom渲染到页面,并且渲染已经结束
            mounted() {
                console.log("mounted");
            },
            // vue检测到有数据更新,开始在内存中进行数据处理(虚拟dom处理,diff算法)
            beforeUpdate() {
                console.log("beforeUpdate");
            },
            // vue将更新变化的数据渲染到真实页面上
            updated() {
                console.log("updated");
            },
            // vue的实力即将被销毁,但还没有销毁
            beforeDestroy() {
                console.log("beforeDestroy");
            },
            // vue实例已经被销毁
            destroyed() {
                console.log("destroyed");
            },
            // vue3中销毁阶段的函数变化
            beforeUnmount() { },
            unmountd() { },

        });
        // 2、将vue与页面绑定
        app.mount("#app");
    </script>
</body>

常用周期函数:

  • created():用于发送Ajax请求,获取后台的数据
  • mounted():在情况喜爱,可以直接进行dom操作(虚拟dom已经被渲染到页面形成真实dom)

虚拟DOM 

        在vue的生命周期中:beforeMount的时间节点,vue底层会根据需要绑定的html页面,在内存构建出一个假的html结构文档(虚拟dom树)。

        在页面数据发生改变的时候,会根据当前旧dom生成一个新的dom,新dom中存放更改的数据,然后进行新旧dom的对比(diff算法)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值