zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Two Sum
    Binary Tree Preorder Traversal *
    Rotate Array
    Repeated DNA Sequences
    Symmetric Tree
    Path Sum
    Python初学——多线程Threading
    Python初学——窗口视窗Tkinter
    pyinstaller打包多个py文件和去除cmd黑框
    python获取当前路径
  • 原文地址:https://www.cnblogs.com/sangzs/p/9007977.html
Copyright © 2011-2022 走看看