最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

vue中created和mounted的区别浅析

来源:动视网 责编:小采 时间:2020-11-27 21:52:21
文档

vue中created和mounted的区别浅析

vue中created和mounted的区别浅析:前言 关于vue.js中的生命周期,如果不是有特别的需求,一般在项目开发过程中更多的使用created和mounted, 所以在本文中主要讲解created与mounted在开发中的主要使用区别。 关于完整的生命周期,不久会在另一篇文章中做整体的理解,包括activated、
推荐度:
导读vue中created和mounted的区别浅析:前言 关于vue.js中的生命周期,如果不是有特别的需求,一般在项目开发过程中更多的使用created和mounted, 所以在本文中主要讲解created与mounted在开发中的主要使用区别。 关于完整的生命周期,不久会在另一篇文章中做整体的理解,包括activated、


前言

关于vue.js中的生命周期,如果不是有特别的需求,一般在项目开发过程中更多的使用created和mounted,
所以在本文中主要讲解created与mounted在开发中的主要使用区别。

关于完整的生命周期,不久会在另一篇文章中做整体的理解,包括activated、destroyed等,不过可能会有点晚,大家可以留意一下

版本信息:

  • 系统:win10
  • Vue:2.5.2
  • webpack:3.6.0
  • npm:6.9.0
  • node:10.15.3
  • 生命周期

    完整的生命周期图示为了避免占用板块,这里就不贴出来了,大家可以自行前往vue生命周期查看。

    浏览器渲染过程

    具体的浏览器渲染过程我会过几天另外写一遍文章,大家可以去我的文章看看。

  • 构建DOM树
  • 构建css规则树,根据执行顺序解析js文件。
  • 构建渲染树Render Tree
  • 渲染树布局layout
  • 渲染树绘制
  • 生命周期中的浏览器渲染

    这里是官方文档对生命周期api的解释,大家可以看看

    以下为测试vue部分生命函数

    beforeCreate(){
     console.log('beforecreate:',document.getElementById('first'))//null
     console.log('data:',this.text);//undefined
     this.sayHello();//error:not a function
    },
    created(){
     console.log('create:',document.getElementById('first'))//null
     console.log('data:',this.text);//this.text
     this.sayHello();//this.sayHello()
    },
    beforeMount(){
     console.log('beforeMount:',document.getElementById('first'))//null
     console.log('data:',this.text);//this.text
     this.sayHello();//this.sayHello()
    },
    mounted(){
     console.log('mounted:',document.getElementById('first'))//<p></p>
     console.log('data:',this.text);//this.text
     this.sayHello();//this.sayHello()
    }

    通过上述测试我们可以知道,

    生命周期 是否获取dom节点 是否可以获取data 是否获取methods
    beforeCreate
    created
    beforeMount
    mounted

    以我的个人理解,vue生命周期实际上和浏览器渲染过程是挂钩的,

    在beforecreate阶段,对浏览器来说,整个渲染流程尚未开始或者说准备开始,对vue来说,实例尚未被初始化,data observer和 event/watcher也还未被调用,在此阶段,对data、methods或文档节点的调用现在无法得到正确的数据。

    在created阶段,对浏览器来说,渲染整个HTML文档时,dom节点、css规则树与js文件被解析后,但是没有进入被浏览器render过程,上述资源是尚未挂载在页面上,也就是在vue生命周期中对应的created
    阶段,实例已经被初始化,但是还没有挂载至$el上,所以我们无法获取到对应的节点,但是此时我们是可以获取到vue中data与methods中的数据的

    在beforecreate阶段,实际上与created阶段类似,节点尚未挂载,但是依旧可以获取到data与methods中的数据。

    在mounted阶段,对浏览器来说,已经完成了dom与css规则树的render,并完成对render tree进行了布局,而浏览器收到这一指令,调用渲染器的paint()在屏幕上显示,而对于vue来说,在mounted阶段,vue的template成功挂载在$el中,此时一个完整的页面已经能够显示在浏览器中,所以在这个阶段,即可以调用节点了(关于这一点,在笔者测试中,在mounted方法中打断点然后run,依旧能够在浏览器中看到整体的页面)。

    写在最后

    笔者目前也只是一个职场小白,粗略探讨一下自己的看法,若有疑问,或者文章错误,都可以在评论中指出,我们一起讨论

    好了,

    文档

    vue中created和mounted的区别浅析

    vue中created和mounted的区别浅析:前言 关于vue.js中的生命周期,如果不是有特别的需求,一般在项目开发过程中更多的使用created和mounted, 所以在本文中主要讲解created与mounted在开发中的主要使用区别。 关于完整的生命周期,不久会在另一篇文章中做整体的理解,包括activated、
    推荐度:
    标签: VUE crea vue中
    • 热门焦点

    最新推荐

    猜你喜欢

    热门推荐

    专题
    Top