前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >前端开发:Vue实例的生命周期钩子函数的使用

前端开发:Vue实例的生命周期钩子函数的使用

作者头像
三掌柜
发布2022-04-12 17:00:10
6470
发布2022-04-12 17:00:10
举报

前言

在前端开发的时候,对于生命周期的使用来说是非常重要的,对于程序生命周期的详细理解也是开发者必备技能,生命周期在程序开发的时候也是非常重要的知识点,不管是哪种语言,生命周期都是重中之重的关键点。那么本篇博文就来分享一下在前端开发的时候基于Vue的于生命周期钩子函数相关的知识点。

Vue实例的生命周期从构建到销毁的过程,大概经过四个阶段:初始化、模版编译、挂载、销毁。在Vue实例的生命周期中,钩子函数就是指在特定的时间节点会自动执行调用的函数。下面由一个示例代码来演示一下Vue实例的生命周期的从构建到销毁的过程。

示例:

代码语言:javascript
复制
<body>
    <div id="app">
        <h3 id="h3">{{message}}</h3>
        <input type="button" value=“更改message" @click="message=‘Hi’”>
    </div>
    <script>
        var vm = new Vue({
            el:'#app',
            data:{
                message:' hello world’ ,
            },
            methods:{
                show(){
                    console.log(‘+++show’);
                }
            },

一、组件创建阶段的4个钩子函数

1、第一个生命周期函数,表示实例完全被创建之前,会执行该函数

在beforeCreate生命周期函数执行的时候,data 和 methods 中的数据还没有被初始化。

代码语言:javascript
复制
  beforeCreate() {   
                 console.log(this.message);     //undefind
                 this.show() ;      //is not defind
            },

2、第二个生命周期函数,表示实例进行初始化的时候,会执行该函数

在 created 中,data和methods 都已经被初始化完成。如果需要调用methods 中的方法,或操作data中的数据,最早只能在created中进行操作。

代码语言:javascript
复制
created() {    
                console.log(this.message);   // hello world
                this.show();        //执行了show方法
            },

3、第三个生命周期函数,表示模板已经在内存中编译完成,但是还未把模板渲染到页面中

在beforeMount执行的时候,页面中的元素没有被真正替换,只是之前写入的一些模板字符串。

代码语言:javascript
复制
  beforeMount() {  
                console.log(document.getElementById('h3').innerText)  //{{message}}
            }, 

4、第四个生命周期函数,表示内存中的模板已经真实的挂载到页面中,用户可以看到已经渲染好的页面

mounted是实例创建期间阶段的最后一个生命周期函数,当执行完 mounted 之后就表示实例已被完全创建,此时如果没有其它操作的话,这个实例就在内存中不动了。

代码语言:javascript
复制
    mounted() {    
                console.log(document.getElementById('h3').innerText)   //hello world
            }, 

二、组件运行阶段的2个钩子函数

5、第五个生命周期函数,表示界面还没被更新,但是数据确定已经更新

当执行 beforeUpdate 的时候,页面中的显示的数据还是未更新的旧数据,但此时的data 数据是最新的,页面的数据尚未和最新的数据保持同步更新。

代码语言:javascript
复制
    beforeUpdate() { 
                console.log('界面上的内容'+ document.getElementById('h3').innerText)  //没有执行,因为数据没改变
                console.log('data中message数据:' + this.message)
            },

6、第六个生命周期函数,表示界面的数据已经更新

updated事件执行的时候,页面和 data 数据已经保持一致了,都是最新的数据。

代码语言:javascript
复制
updated() {
        console.log('界面上的内容'+ document.getElementById('h3').innerText)   //Hi
        console.log('data中message数据:' + this.message)   //Hi
     },

三、组件销毁阶段的2个钩子函数

7、beforeDestroy 生命周期是实例销毁前,在这个函数内还是可以操作实例的。

8、销毁完成后,再执行 destroyed,此时已不能再操作实例了。生命周期整个流程到此时就已经全部结束了。

代码语言:javascript
复制
  })
    </script>
</body>

附:组件选择的顺序

组件选项应该有统一的顺序,具体的顺序如下所示:

代码语言:javascript
复制
export default {
  name: '',

  mixins: [],

  components: {},

  props: {},

  data() {},

  computed: {},

  watch: {},

  created() {},

  mounted() {},

  destroyed() {},

  methods: {},
};

最后

通过上面内容的分享,可以很好的知道前端开发的程序的生命周期,也详细的知道了对应的生命周期钩子函数的使用,尤其是对于初级开发者来说,更应该熟练掌握对应的知识点,这里不再赘述。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-10-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 iOS开发by三掌柜 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档