文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

vue中的生命周期及钩子函数

2024-04-02 19:55

关注

1.什么是生命周期

Vue 实例有一个完整的生命周期,也就是从开始创建、初始化数据、编译模板、挂载 Dom、渲染 → 更新 → 渲染、卸载等一系列过程,我们称这是 Vue 的生命周期。通俗说就是 Vue 实例从创建到销毁的过程,就是生命周期。

在 Vue 的整个生命周期中,它提供了一系列的事件,可以让我们在事件触发时注册 js 方法,可以让我们用自己注册的 js 方法控制整个大局,在这些事件响应方法中的 this 直接指向的是 vue 的实例。

2.vue 的生命周期

生命周期函数,又叫钩子函数(生命周期钩子===生命周期函数===生命周期事件)

vue 中的生命周期函数,一般都是 成对出现。所以我们成对比较一下,他们的区别。

10 个生命周期函数 牢记!具体使用!

3.生命周期钩子函数

特点:自动调用的,只是他们的调用的时间节点 有 先 有 后。

在官网上拿了张图:

beforeCreate  --- vue实例"创建前" ,注意:在这个函数中,vue中data数据中心的数据,它是读不到的。


  <script src="./js/vue.js"></script>
    <script>
        let vm = new Vue({
            el:'#app',
            data:{
                name:"哈哈哈",
                num:1111
            },
            methods: {
                
            },
 
            // vue实例创建之前
            beforeCreate(){
                console.log('beforeCreate');
                console.log(this.name);
            }
    </script>


输出数据中心的 name 是读不到的:


created --- vue实例"创建后",注意:在这个函数中,可以识别 到 vue中data数据中心的数据
  <script src="./js/vue.js"></script>
    <script>
        let vm = new Vue({
            el:'#app',
            data:{
                name:"哈哈哈",
                num:1111
            },
            // vue实例创建之后
            created(){
                console.log("created");
                console.log(this.name);
            }
        })
    </script>


查看结果:

beforeMount --- DOM挂载之前      this.$el---此时的$el为“虚拟的”DOM节点

在视图层渲染标签:


  <div id="app">
        <p>{{name}}</p>
        <p>{{num}}</p>
    </div>
<script src="./js/vue.js"></script>
    <script>
        let vm = new Vue({
            el:'#app',
            data:{
                name:"哈哈哈",
                num:1111
            },
            // dom挂载之前
            beforeMount(){
                console.log("beforeMount");
                   //查看dom元素
                console.log(document.body.querySelector("#app").innerHTML);
            }
        })
    </script>


dom挂载前输出结果:


 mounted ---DOM挂载之后    this.$el---此时的$el为“真实的”DOM节点
 
    <script src="./js/vue.js"></script>
    <script>
        let vm = new Vue({
            el:'#app',
            data:{
                name:"哈哈哈",
                num:1111
            },
            // dom挂载之后
            mounted(){
                console.log("mounted");
                console.log(document.body.querySelector("#app").innerHTML);
            }
        })
    </script>


查看输出结果:

在视图层通过 点击让 num 的数值发生改变来模拟数据更新,查看结果:


  
    <div id="app">
        <p id="num">{{num}}</p>
        <button @click="num++">点击数据更新(num+1)</button>
    </div>
  // 数据更新前
            beforeUpdate(){
                console.log("beforeUpdate--数据更新前");
                // 查看dom元素
                console.log(document.body.querySelector("#num").innerHTML);
            },
            // 数据更新后
            updated(){
                console.log("updated--数据更新后");
                // 查看dom元素
                console.log(document.body.querySelector("#num").innerHTML);
            }


此时数据无变化时,在控制台是看不到效果的,当我们点击按钮后:

 

到此这篇关于vue中的生命周期及钩子函数的文章就介绍到这了,更多相关vue中的生命周期钩子函数内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-前端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯