vue.js页面加载执行created,mounted的先后顺序说明

Vue.js中,组件的生命周期包括如下几个阶段:创建(creation)、挂载(mounting)、更新(updating)和销毁(destroying)。其中,createdmounted属于创建和挂载阶段,下面详细介绍它们执行的先后顺序。

首先,created钩子函数会在组件实例创建之后立即被调用,此时模板还未渲染成html,因此无法访问到DOM元素。但是你可以在此时访问组件实例的属性和方法。例如,可以进行异步数据请求或者计算属性的初始化。

接下来,mounted钩子函数会在模板渲染成html之后,挂载到页面上之前被调用,此时可以访问到DOM元素。因此,动态计算元素位置、获取DOM元素尺寸、操作DOM元素等都可以在此时进行。值得注意的是,在此阶段中需要确保调用了异步API的数据已经返回并渲染到页面上。

下面分别给出两个示例说明createdmounted的执行顺序。

示例一:组件中定义created、mounted钩子函数

<template>
  <div>
    <h3>{{message}}</h3>
  </div>
</template>

<script>
  export default {
    data() {
      return {
        message: 'Hello, Vue.js!'
      };
    },
    created() {
      console.log('执行created钩子函数');
    },
    mounted() {
      console.log('执行mounted钩子函数');
    }
  };
</script>

在这个示例中,我们定义了一个组件,使用了createdmounted两个钩子函数。控制台输出结果如下:

执行created钩子函数
执行mounted钩子函数

可以看出,created先于mounted执行。

示例二:异步API调用数据

<template>
  <div>
    <ul>
      <li v-for="item in list" :key="item.id">{{item.title}}</li>
    </ul>
  </div>
</template>

<script>
  export default {
    data() {
      return {
        list: []
      };
    },
    created() {
      axios.get('/api/list').then(resp => {
        this.list = resp.data;
        console.log('执行created钩子函数');
      });
    },
    mounted() {
      console.log('执行mounted钩子函数');
    }
  };
</script>

在这个示例中,我们在created中使用axios异步请求数据,并在数据请求成功后将返回结果渲染到页面中。控制台输出结果如下:

执行created钩子函数
执行mounted钩子函数

可以看出,异步数据请求调用了created钩子函数,在异步数据请求返回后,页面渲染完成,最后执行了mounted钩子函数。

综上所述,created钩子函数先于mounted钩子函数执行,created适用于数据初始化和异步API请求数据,mounted适用于访问DOM元素和操作DOM元素。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:vue.js页面加载执行created,mounted的先后顺序说明 - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • 浅谈如何优雅处理JavaScript异步错误

    当我们在JavaScript中处理异步操作的时候,难免会遇到一些错误,如何优雅地处理这些错误是很重要的。以下是几条有用的攻略: 1. Promise捕获错误 在处理异步任务的时候,我们通常会使用Promise。我们可以通过Promise的catch方法来捕获Promise中的错误,然后进行处理。 fetch(‘https://api.example.com’…

    Vue 2023年5月28日
    00
  • vue 使用lodash实现对象数组深拷贝操作

    将 Vue 中的对象和数组进行深拷贝操作通常需要使用第三方库来进行操作。Lodash 是一个支持多种操作的 JavaScript 实用工具库,其中就包含了深拷贝操作。下面就是关于在 Vue 中使用 Lodash 实现对象数组深拷贝的详细攻略。 步骤一:安装 Lodash 从 Lodash 的官网上可以下载到 Lodash 的压缩包,也可以直接使用 npm 进…

    Vue 2023年5月29日
    00
  • vue-cli4.0多环境配置变量与模式详解

    下面就为大家详细讲解“vue-cli4.0多环境配置变量与模式详解”的完整攻略。 1. Vue-cli4.0多环境 1.1 什么是多环境? 在Vue开发中,我们会根据不同的环境(开发环境、测试环境、生产环境等)来区分不同的代码逻辑,比如可以使用不同的API服务。因此,我们需要进行多环境的配置。 1.2 多环境配置方法 Vue-cli4.0对于多环境配置提供了…

    Vue 2023年5月28日
    00
  • vue中的computed 和 vm.$data 原理解析

    当我们在使用Vue.js时,我们会经常接触到computed属性和vm.$data数据对象,其中computed属性是通过函数动态计算并返回值的,而vm.$data是Vue实例数据对象,保存了Vue实例中所有的数据。下面我们来详细讲解一下computed和vm.$data的原理解析。 computed属性的原理解析 Computed属性是Vue.js中的一个…

    Vue 2023年5月27日
    00
  • Vue中通过Vue.extend动态创建实例的方法

    让我来为您讲解一下在Vue中通过Vue.extend动态创建实例的方法。 Vue.extend方法 Vue.extend方法是Vue的一个全局API,用于创建一个Vue组件构造器,并返回该构造器。通过Vue.extend方法创建的组件构造器可以像普通的Vue组件一样进行注册、传值、生命周期等操作。 创建Vue组件构造器 首先我们需要通过Vue.extend方…

    Vue 2023年5月28日
    00
  • vue2 d3实现企查查股权穿透图股权结构图效果详解

    标题:Vue2 + D3 实现企查查股权穿透图股权结构图效果详解 在本文中,我们将介绍如何通过 Vue2 和 D3 库实现企查查股权穿透图股权结构图效果。下面将分为以下几个步骤进行讲解: 搭建项目环境 导入 D3 库 通过 D3 解析数据 绘制股权穿透图 美化股权穿透图 搭建项目环境 使用 VueCli 创建一个新项目 安装 ElementUI:npm in…

    Vue 2023年5月28日
    00
  • Vue axios 将传递的json数据转为form data的例子

    当我们使用 Vue.js 和 axios 进行数据交互时,通常会使用 JSON 数据格式来传递数据。但在某些情况下,我们需要将 JSON 数据转换成 FormData 格式,例如在使用 Form 表单上传文件时。下面是一个 Vue axios 将传递的 JSON 数据转为 FormData 的例子: 步骤一:安装 axios 首先需要安装 axios,可以使…

    Vue 2023年5月28日
    00
  • Ant design vue中的联动选择取消操作

    Ant Design Vue中提供了一种很方便的方法实现联动选择和取消操作。这种方法主要是基于Checkbox.Group和Checkbox组件。接下来我们详细讲解如何实现这种联动选择和取消操作。 步骤: 1. 创建一个Checkbox.Group组件和几个Checkbox组件。 示例代码: <template> <div> <…

    Vue 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部