Vue.js中创建和挂载事件之间的差异

时间:2017-08-22 09:07:18

标签: javascript vue.js

Vue.js文档描述了createdmounted事件,如下所示:

created
  

创建实例后同步调用。在这   阶段,实例已完成处理选项的意思   以下内容已经建立:数据观察,计算属性,   方法,观察/事件回调。但是,安装阶段没有   已经开始了,$ el属性还没有。

mounted
  

在实例刚安装好el替换后调用   由新创建的vm。$ el。如果根实例已挂载到   文档元素,vm。$ el在安装时也将在文档中   调用。

     

在服务器端呈现期间不会调用此挂接。

我理解这个理论,但我对练习有 2个问题

  1. 是否有created用于mounted
  2. 的情况
  3. 我可以在现实生活中使用created事件(实际代码) 情况?

1 个答案:

答案 0 :(得分:144)

created():由于选项的处理已完成,您可以访问被动data属性,并根据需要进行更改。在这个阶段,尚未安装或添加DOM。所以你不能在这里做任何DOM操作

mounted():在装载或渲染DOM后调用。在这里您可以访问DOM元素并可以执行DOM操作,例如获取innerHTML:

console.log(element.innerHTML)

所以你的问题:

  1. Is there any case where created would be used over mounted?
  2. Created通常用于从后端API获取数据并将其设置为数据属性,如 wostex 所述。但是在SSR mounted()挂钩不存在的情况下,您需要执行诸如仅在创建的挂钩中获取数据的任务

    1. What can I use the created event for, in real-life (real-code) situation?
    2. 从外部API获取要呈现的任何初始所需数据(如JSON)并将其分配给任何反应数据属性

      data:{
          myJson : null,
          errors: null
      },
      created(){
          //pseudo code
          database.get().then((res) => {
              this.myJson = res.data;
          }).catch((err) => {
              this.errors = err;
          });
      }