Vue中mounted和created的区别

327 阅读1分钟

一、什么是[生命周期]

用通俗的语言来说,就是Vue中实例或者组件从创建到消灭中间经过的一系列过程。虽然不太严谨,但是也基本上可以理解。 通过一系列实践,现在把所有遇到的问题整理一遍,今天记录一下created和mounted的区别:

二、created和mounted区别?

created中没有 $el 但可以通过vm访问到data中的数据,methods中的方法。而mounted可以访问DOM节点了

image.png

<template>
  <div>
    <h2 ref="title">hello</h2>
  </div>
</template>

<script>
export default {
  mounted() {
    console.log(this.$refs.title,'mounted');
  },
  created() {
    console.log(this.$refs.title,'created');
  },
};
</script>

2.2 由于created执行时,DOM结构还未渲染,此时渲染数据不会报错,但mounted会报错。相同点:都能在vc上添加数据,但添加的数据不是响应式的(虽然能改,但页面不能更新)

代码

<template>
  <div>
    <h2 ref="title">hello</h2>
    <b>{{a}}</b>
  </div>
</template>

<script>
export default {
  data() {
    return {
      c: 3,
    };
  },
//钩子函数中的this都是vc
  created() {
    this.a = 1;
    console.log(this.a);
    console.log(this);
  },
  // mounted() {
  //   this.a = 1;
  //   console.log(this.a);
  // },
};

若使用mounted则报错

image.png