vue生命周期(created,mounted具体用于哪些场景)、三种存储的区别

vue生命周期

什么是生命周期呢,就好像是人有生老病死一样,vue组件也有从创建到消亡的一系列过程。这个过程就叫做vue的生命周期

vue的生命周期可分为三大阶段,每个阶段都有对应的函数,叫做钩子,又被成为钩子函数:

挂载(初始化相关属性)

beforeCreate:vue实例刚被创建出来,此时还没有初始化好data与methods属性。

create:data与methods已经初始化,但是还没有编译模板。–【请求数据】

beforeMount:完成了编译,但是还没有挂载到页面中。

mounted:已经将编译好的模板,挂载到页面指定的容器中。
更新(元素或组件的更新操作)-----【非父子通讯】

beforeUpdate:更新之前执行此函数。data中的状态是最新的,但是页面上显示的数据还是旧值。

update:更新完成后执行此函数。data与页面上的数据都是最新的。
销毁(销毁相关属性)

beforeDestroy:准备销毁,但是还没有销毁。实例属性和方法仍然可以使用。

destroyed:已经销毁,实例不可用。

<div id="app">
    <p>
        {{msg}}
    </p>
    <button @click="update">更新</button>
    <button @click="destroy">销毁</button>
</div>
var myVue=new Vue({
    el:"#app",
    data:{
        msg:"aaa",
    },
    methods:{
        update(){
            this.data = 'bbb'
        },
        destroy(){
            this.$destroy();
        }
    },
    beforeCreate:function(){
        /*
     在调用beforeCreate的时候, 仅仅表示Vue实例刚刚被创建出来
     此时此刻还没有初始化好Vue实例中的数据和方法, 所以此时此刻还不能访问Vue实例中保存的数据和方法
            * */
        console.log(this.msg);
        console.log(this.update);
    },
    created:function(){
        /*
            在调用created的时候, 是我们最早能够访问Vue实例中保存的数据和方法的地方
            * */
        console.log(this.msg);
        console.log(this.update);
    },
    beforeMount:function(){
        /*
            在调用beforeMount的时候, 表示Vue已经编译好了最终模板, 但是还没有将最终的模板渲染到界面上
            * */
        console.log(document.querySelector("p").innerHTML);
        console.log(document.querySelector("p").innerText);
    },
    mounted:function(){
        /*
            在调用mounted的时候, 表示Vue已经完成了模板的渲染, 表示我们已经可以拿到界面上渲染之后的内容了
            * */
        console.log(document.querySelector("p").innerHTML);
    },
   beforeUpdate:function(){
            /*
            在调用beforeUpdate的时候, 表示Vue实例中保存的数据被修改了
            注意点: 在调用beforeUpdate的时候, 数据已经更新了, 但是界面还没有更新
            * */
            console.log("beforeUpdate");
            console.log(this.msg);
            console.log(document.querySelector("p").innerHTML);
        },
        updated:function(){
            /*在调用updated的时候, 表示Vue实例中保存的数据被修改了, 并且界面也同步了修改的数据了* */
            console.log(this.msg);
            console.log(document.querySelector("p").innerHTML);
        },
    beforeDestroy: function(){
            /*
            在调用beforeDestroy的时候, 表示当前组件即将被销毁了
                    beforeDestroy函数是我们最后能够访问到组件数据和方法的钩子函数
            * */
            console.log("beforeDestroy");
            console.log(this.msg);
            console.log(this.say);
        },
        destroyed: function(){
            /*
            在调用destroyed的时候, 表示当前组件已经被销毁了,不要在这个生命周期方法中再去操作组件中数据和方法
            * */
            console.log("destroyed");
        }
})

created和mounted在什么情况下使用【请注意】

create方法,在页面还未渲染成html前,调用函数,从后端获取数据,在实现对页面的数据进行显示
mounted通常是在一些插件的使用或者组件的使用中进行操作 也就是页面渲染之后执行 通常情况下我们会在没有相应的点击事件,但需要在页面展示过程中去不断调用某一函数情况下使用。

存储的三者之间的区别

cookie:数据存储,跨页面通讯;
数据每次都会发送给服务端;

前后端都可以操作;

cookie的默认是会话级别的有效期,即页面打开到页面关闭;但可以手动设置过期时间;

只要cookie里面有数据,请求的时候都会自动携带;

存储大小:4KB左右

localStorage:存储数据,跨页面通讯;
不会与服务器端通讯,相对与cookie较安全,不用担心数据被截获;

只能有前端操作,后端操作不了;

存储的时效性是永久的,但是可以手动删除;

请求的时候都不会自动携带;

存储大小:5M左右

sessionStorage:存储数据;
不会与服务器端通讯,相对与cookie较安全,不用担心数据被截获;

只能有前端操作,后端操作不了;

仅在当前会话下有效。只要这个浏览器窗口关闭后就会被销毁;

只能有前端操作,后端操作不了;

存储大小:5M左右;

也就是说,sessionStorage与localStorage唯一的不同就是前者的有效期是会话级别的,后者是永久的

  • 23
    点赞
  • 75
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
### 回答1: Vue生命周期中的created和mounted分别表示组件创建和挂载到DOM上的时刻。 created生命周期在组件实例创建之后立即调用,此时组件的数据和方法已经初始化完成,但是DOM元素还没有被创建和渲染。 mounted生命周期在组件挂载到DOM上之后调用,此时组件的DOM元素已经被创建和渲染,可以进行DOM操作和数据绑定等操作。 ### 回答2: Vue是一种流行的JavaScript框架,它提供了一些生命周期钩子函数来帮助开发人员管理Vue实例的行为。其中两个最常用的生命周期钩子函数是created和mounted,下面将详细介绍它们的作用。 1. created生命周期 created生命周期Vue实例创建时触发的一个生命周期钩子函数。在这个生命周期函数中,开发者可以在Vue实例还没有完全创建之前一些准备工作,比如初始化数据、添加事件监听器、初始化方法等。当Vue实例被创建时,created钩子函数将会被调用。 在created生命周期函数中,我们可以访问到Vue实例的数据和方法,但此时DOM并没有被渲染,因此在这个生命周期函数中修改DOM是无效的。也就是说,created的目的是在Vue实例创建时执行一些非视图相关的初始化。 2. mounted生命周期 mounted生命周期Vue实例挂载到DOM时触发的一个生命周期钩子函数。在这个生命周期函数中,我们可以访问到Vue实例的所有属性和方法,同时DOM元素也已经被完全渲染好了。因此,我们可以在这里对Vue实例的属性和DOM元素进行修改,同时也可以在这里进行一些异步操作,比如请求数据等等。 在mounted生命周期函数中,我们也可以访问到Vue实例的计算属性和监听器,而且Vue的DOM更新也已经完成,可以进行各种DOM操作。因此,mounted的目的是在Vue实例完成挂载后执行一些初始化和API调用的操作。 总结: Vuecreated和mounted两个生命周期函数都是非常重要的,它们的作用不同,有不同的执行时机,但都是与初始化相关的操作。created主要用于初始化Vue实例的一些数据和方法,而mounted主要用于处理Vue实例在挂载到DOM后的一些操作和API调用。理解好它们的执行顺序和作用,可以使开发人员更好地利用Vue框架进行开发工作。 ### 回答3: Vue是一种流行的JavaScript框架,具有许多生命周期钩子函数,其中最重要的是created和mounted。这两个生命周期钩子函数在Vue应用程序中发挥着重要作用,我们需要了解它们的作用和使用方式。 作为Vue实例的创建阶段的第一个生命周期钩子函数,created函数是在实例被创建之后立即调用的。这个钩子函数可以用来完成一些初始化工作,例如装载数据、监听事件等等。此时,一个Vue实例已经被创建出来了,但是它还没有和DOM进行绑定,因此,我们无法访问和修改DOM元素。此外,在created函数中,我们可以访问到Vue实例的各种属性和方法。 mounted生命周期函数是在Vue实例被挂载到DOM元素上之后立即调用的。在这个钩子函数中,我们可以访问到相应的DOM元素,对其进行修改和访问。在mounted函数中操作DOM元素更加方便,因为此时DOM元素已经准备好了,我们可以进行各种初始化工作,例如加载插件、获取数据、设置定时器、修改DOM元素等等。在mounted函数中,我们需要注意,它只会执行一次,因此,我们需要谨慎地书写代码。 总之,created和mountedVue生命周期中很重要的两个阶段,他们有着不同的作用和用法。created生命周期函数发生在实例被创建后,这里可以进行数据的初始化等一些操作;mounted则是发生在实例被挂载到DOM元素上之后,这里可以对DOM进行操作和访问。我们可以根据应用的实际需求,灵活使用这两个生命周期钩子函数,更好地控制Vue的运行过程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值