• vue组件实例的生命周期


    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
    </head>
    
    <body>
        <div id="demo"></div>
        <script src='https://cdn.bootcss.com/vue/2.3.2/vue.js'></script>
        <script>
            var vm = new Vue({
                el: '#demo',
                beforeCreate: function () {
                    console.log("开始初始化时同步调用,此时数据观察,事件都没有初始化");
                },
                created: function () {
                    console.log('已经完成实例的创建');
                },
                beforeMount: function () {
                    console.log("在模版编译之前执行");
                },
                mounted: function () {
                    console.log("模版编译完成");
                },
                beforeUpdate: function () {
                    console.log("更新数据前");
                },
                updated: function () {
                    console.log('如果你要更新数据,那么每次更新数据之后就会调用');
                },
                beforeDestroy: function () {
                    console.log("开始销毁实例时调用,此用的实例依然有用");
                },
                destroyed: function () {
                    console.log("实例已销毁");
                },
                activated: function () {
                    console.log("动态组件初始化渲染过程中调用,需要keep-live配合使用");
                },
                deactivated: function () {
                    console.log("动态组件移出过程中调用,需要keep-live配合使用");
                }
            });
        </script>
    </body>
    
    </html>

     

    对钩子函数一个比较通俗易懂的解释:

    Vue在实例化一个组件时会在特定的阶段调用特定的方法,调用的这个方法就叫钩子方法,比如Vue在实例化组件之初按顺序调用beforeCreated,created,beforeMounted,mounted,每个阶段组件内部的属性都是不一样的,比如created钩子时视图还没有渲染,就不能做一些dom操作。所以一般特定的钩子做特定的事,比如ajax获取数据就可以在mounted阶段,当然放在created,beforeMounted也是可以的,因为ajax是异步的嘛,ajax之后的回调会放在事件队列的尾部,此时实例化组件整个过程会在ajax回调之前执行完毕。所以ajax操作放在created,mounted里面都是可以的。

    参考文章:https://segmentfault.com/a/1190000008010666

  • 相关阅读:
    [hdu3853]LOOPS(概率dp)
    [poj2096]Collecting Bugs(概率dp)
    lintcode-42-最大子数组 II
    lintcode-39-恢复旋转排序数组
    lintcode-36-翻转链表 II
    lintcode-34-N皇后问题 II
    lintcode-33-N皇后问题
    lintcode-32-最小子串覆盖
    lintcode-31-数组划分
    lintcode-30-插入区间
  • 原文地址:https://www.cnblogs.com/sangzs/p/9007977.html
Copyright © 2020-2023  润新知