对vue里函数的调用顺序介绍

接下来我会详细讲解“对vue里函数的调用顺序介绍”的完整攻略。

1. Vue函数的调用顺序

Vue中的函数调用顺序有如下几种情况:

  1. beforeCreate(创建前): 这个阶段会在Vue实例初始化之后,数据观测之前被调用。在此阶段,我们无法访问到 data、computed、methods、watch中的任何属性。

  2. created(创建后): 该阶段在实例创建完成后被立即调用。此时我们已经可以访问到 data、computed、methods、watch 中的任何属性,也可以对它们进行修改。

  3. beforeMount(挂载前): 这个阶段将在挂载开始之前被调用。在此阶段中,Vue 将编译模板,并将其转换为虚拟 DOM 渲染函数。

  4. mounted(挂载后): 在挂载阶段完成后被调用,此时实例已经完成了数据绑定,可以访问到模板中的元素。

  5. beforeUpdate(更新前): 当数据更新之后,导致 DOM 重新渲染和 patch 重新执行之前,会调用 beforeUpdate 钩子函数。

  6. updated(更新后): 当数据更新完成后会调用 updated 钩子函数,此时已经完成了 DOM 的重新渲染。

  7. beforeDestroy(销毁前): Vue 实例在销毁前会调用 beforeDestroy 钩子函数,在这里我们还能访问到实例中的数据。

  8. destroyed(销毁后): 当实例被销毁时会调用 destroyed 钩子函数,这个时候我们已经无法访问到实例的数据,方法以及 DOM 。

2. 示例说明

示例1: 父子组件的数据传递

在父组件挂载结束之后,子组件中定义的 mounted 钩子函数才会依次执行。

<template>
  <div>
    <h1>父组件</h1>
    <p>父组件数据: {{message}}</p>
    <Child v-bind:childMessage="message"></Child>
  </div>
</template>

<script>
import Child from './Child.vue';

export default {
  components: {
    Child
  },
  data() {
    return {
      message: '我是父组件的数据'
    }
  },
  mounted() {
    console.log('父组件 mounted');
  }
}
</script>
<template>
  <div>
    <h2>子组件</h2>
    <p>子组件数据: {{childMessage}}</p>
  </div>
</template>

<script>
export default {
  props: {
    childMessage: String
  },
  mounted() {
    console.log('子组件 mounted');
  }
}
</script>

以上代码中,我们在父组件中定义一个数据 message,然后将它作为父组件向子组件传递的 props 属性 childMessage 的值。在子组件中,我们通过 props 属性来接收父组件传递的数据,并在界面中渲染出来。

执行结果:

父组件 mounted
子组件 mounted

示例2: 本地存储数据的使用

假设我们有这样一个需求:当用户在某个组件中填写了一些表单数据后,需要把数据存储到本地,以方便用户下次访问该页面时使用这些数据。我们可以在组件的 beforeDestroy 钩子函数中实现这个功能。

<template>
  <div>
    <form>
      <label>姓名:</label>
      <input type="text" v-model="name">
      <br>
      <label>电话:</label>
      <input type="text" v-model="phone">
    </form>
  </div>
</template>

<script>
export default {
  data() {
    return {
      name: '',
      phone: ''
    }
  },
  mounted() {
    console.log('组件 mounted');
    let data = JSON.parse(localStorage.getItem('formData'));
    if (data) {
      this.name = data.name;
      this.phone = data.phone;
    }
  },
  beforeDestroy() {
    console.log('组件被销毁前存储数据');
    let formData = {
      name: this.name,
      phone: this.phone
    };
    localStorage.setItem('formData', JSON.stringify(formData));
  }
}
</script>

在上述代码中,我们定义了一个含有两个表单项的组件,通过 v-model 实现了表单数据的双向绑定。在组件挂载完成后,我们调用了 localStorage 的 getItem 方法,从本地存储中读取数据,并将数据绑定到表单中展示。在组件 beforeDestroy 钩子函数中,我们将表单数据封装为 formData 对象,并将其以字符串的形式存储到本地存储中。

执行结果:

组件 mounted
组件被销毁前存储数据

以上就是对 vue 函数调用顺序介绍的详细攻略。希望对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:对vue里函数的调用顺序介绍 - Python技术站

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

相关文章

  • vue去掉严格开发,去掉vue-cli安装时的eslint或修改配置方式

    如果您想在vue项目中去掉严格开发模式或者去掉eslint,可以按照以下步骤进行: 去掉严格模式 在vue 3.x版本中,严格模式被默认开启。如果您想去掉严格模式,可以按照以下方式进行: 1. 修改vue.config.js配置文件 在vue.config.js配置文件中添加如下代码: module.exports = { lintOnSave: false…

    Vue 2023年5月28日
    00
  • Vue实现可移动水平时间轴

    Vue实现可移动水平时间轴 1. 引入样式文件 在head标签内引入需要用到的样式文件,例如: <head> <link rel="stylesheet" href="timeline.css"> </head> 2. 组件的结构 要实现一个时间轴,我们需要用到一个列表(<ul…

    Vue 2023年5月29日
    00
  • axios向后台传递数组作为参数的方法

    当使用 axios 向后台传递数组作为参数时,可以通过两种方法来实现。 方法一:使用 URLSearchParams 对象 在前端将数组转换为 URLSearchParams 对象,再通过 axios 发送请求。具体代码如下: import axios from ‘axios’; const params = new URLSearchParams(); c…

    Vue 2023年5月29日
    00
  • Vue.js 时间转换代码及时间戳转时间字符串

    对于Vue.js的时间转换,可以通过使用其提供的filters(过滤器)来实现,同时我们也可以使用moment.js这个工具库来方便地进行时间转换。 使用 Vue.js Filter 进行时间转换 在 Vue.js 中,我们可以通过定义 Filter 来实现字符串到特定格式的日期的转换,该功能类似于 AngularJS 中的 Filter。下面是一个简单的例…

    Vue 2023年5月27日
    00
  • Vue登录功能实现全套详解(含封装axios)

    关于“Vue登录功能实现全套详解(含封装axios)”的完整攻略,我将为你进行详细讲解。 1. 概述 本文将从以下方面讲解Vue登录功能的实现: Vue项目的创建和初始化; Vue路由的配置; Vue组件的编写; 使用axios封装HTTP请求; 进行登录验证。 2. Vue项目的创建和初始化 首先,我们需要使用Vue-CLI创建一个Vue项目,并且初始化项…

    Vue 2023年5月28日
    00
  • 详解Vue单元测试case写法

    下面是详解Vue单元测试case写法的完整攻略。 什么是Vue单元测试? Vue单元测试是指对一个Vue组件进行测试,以验证组件在预期条件下能否按照预期运行。在Vue单元测试中,我们主要对组件的数据、方法和生命周期进行测试。 如何进行Vue单元测试? Vue单元测试的实现需要使用工具 Vue Test Utils 和测试框架 Jest。这两个工具都可以通过n…

    Vue 2023年5月28日
    00
  • vue2.0 datepicker使用方法

    Vue2.0 Datepicker使用方法 简介 Vue2.0 Datepicker是一个基于Vue2.0和moment.js的日期选择器组件,它可以帮助你方便地选择日期并将所选日期返回给你的应用程序。 安装 安装Vue2.0 Datepicker很简单,只需要使用npm命令即可: npm install vue2-datepicker –save 使用 …

    Vue 2023年5月29日
    00
  • Mpvue中使用Vant Weapp组件库的方法步骤

    使用Vant Weapp组件库的方法步骤: 安装Vant Weapp 在cmd中进入mpvue项目根目录,执行以下命令进行安装: npm install vant-weapp -S –production 在 App.vue 中引入 Vant Weapp 在 App.vue 的 script 标签中如下添加: import Vant from ‘vant-…

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