生命周期钩子函数

     /* 创建前 */

            beforeCreate(){

                /* 在这里 data中的属性值获取不到 */

                /* 但是能获取到vue的实例化对象 */

               /*  console.log('组件实例刚被创建',this,this.msg) */

            },

             /* 创建后 */

            created(){

                /* 组件实例刚创建完成,属性已经绑定,但是DOM还未生成,$le属性还不存在 */

                /* console.log(this.el,this.msg); */

                /* 你请求接口就是走这个钩子函数发出的 */

                /* 可以从ajax里面获取数据 */

                /* setTimeout(()=>{

                    let data = "请求成功"

                    this.msg = data;

                },500) */

                this.timer = setInterval(() => {

                    console.log(123)

                }, 500);

                /* this.time是定时器返回的唯一id */

                console.log(this.timer);

            },

            /* 挂载前 */

            beforeMount(){

                /* 模板编译、挂载之前 */

                /* console.log(this.$el) */

                /* this.$el只是获取到了 但是没有挂载到模板上 */

                /* data里面的值是渲染不出来的 */

                /* console.log( document.getElementsByTagName('h1')[0] ); */

                /* console.log(document.getElementsByTagName('h1')[0].innerHTML) */

            },

            /* 挂载后 */

            mounted(){

                /* this.$el 获取到了 而且挂载到模板上 */

               /*  console.log(this.$el) */

               /* data里面的值是可以渲染出来的 */

              /*  console.log( document.getElementsByTagName('h1')[0] ); */

              /* console.log(document.getElementsByTagName('h1')[0].innerHTML) */

              /*  在dom的操作中适合在mounted里面去执行 */

            },



    beforeUpdate() {

                /* beforeUpdate值更新完之后,没有第一时间渲染到模板上

                只是在vue的实例中把data数据给改了 */

                console.log('beforeUpdate组件更新之前')

            },



   updated() {

                /* updated是既改了data中的值,又把值渲染到了模板上 */

                console.log('updated组件更新之后')

                /* 使用的场景 需要改变data中数据,你还需要做一些事情(业务逻辑需要的事情,

                例如埋点信息上报,echarts图获取了最新的数据需要重新渲染视图的时候),

                那么这个时候就需要updated函数来触发 */

            },

            /* 路由进行跳转的时候,会触发下面的函数(组件之间的切换) */

            beforeDestroy() {

                /* 执行beforeDestroy的vue的实例化对象还存在,还没有被完全的销毁 */

                console.log('beforeDestroy组件销毁前调用')

            },



 destroyed() {

                /* 在执行destroyed的时候,组件已经完全被销毁 */

                console.log('destroyed组件销毁后调用')

                clearInterval(this.timer)

                /* 使用destroyed来清除定时器,避免全局的使用,造成性能消耗 */

            },

            methods: {

                /* 销毁组件 */

                destoryzj(){

                    this.$destroy()

                }

            },


©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容