vue 项目实战 (生命周期钩子)

news/2024/7/9 23:55:33 标签: VUE

开篇先来一张图

下图是官方展示的生命周期图

Vue实例的生命周期钩子函数(8个)
        1. beforeCreate
              刚 new了一个组件,无法访问到数据和真实的dom,基本上这个好像不能干啥
        2. created
              data属性完成了赋值,可以对数据进行修改但是不会触发updated,在这里可以做初始数据的获取
        3. beforeMount
              render准备要渲染了,函数中虚拟dom已经创建完成,这时候改变数据也不会触发update,在这里可以做初始数据的获取
        4. mounted
              开始render,渲染出真实dom,执行mounted钩子函数,组件已经出现在页面中,数据,事件,都DOM都处理好了。这里你                可以改是进行真实的DOM操作
        5. beforeUpdate
              组件,实例数据更新之前会执行的函数,虚拟DOM会重新构建虚拟DOM,与上一次的虚拟DOM对比后重新渲染。切记不可                  进行数据修改否则会出现死循环
        6. updated
              更新完会执行的函数,切记不可进行数据修改否则会出现死循环
        7. beforeDestroy
              实例被销毁之前会执行的函数,做善后的工作,清除计时器,清除非指令绑定的事件等等
        8. destroyed
              实例被销毁后会执行的函数,也可以做善后工作。

<template>
  <div class="hello"> Hello World!
  </div>
</template>

<script> export default {
  name: "HelloWorld",
  data() { return {
      msg: "Welcome to Your Vue.js App" };
  },
  beforeCreate: function() {
    console.log("data属性光声明没有赋值的时候");
  },
  created: function() {
    console.log("data属性完成了赋值");
  },
  beforeMount: function() {
    console.log("页面上的{{name}}还没有被渲染成真正的数据");
  },
  mounted: function() {
    console.log("页面上的{{name}}被渲染成真正的数据");
  },
  beforeUpdate: function() {
    console.log(" 数据(data属性)更新之前会执行的函数");
  },
  updated: function() {
    console.log("数据(data属性)更新完会执行的函数");
  },
  beforeDestroy: function() {
    console.log("实例被销毁之前会执行的函数");
  },
  destroyed: function() {
    console.log("实例被销毁后会执行的函数");
  }
}; </script>

<style scoped>
</style>

onsole这样一个输出顺序:

大概这样一个 生命周期钩子函数执行的顺序,包括我之前是用angular开发跟vue一样 他也有自己的生命周期钩子函数。

生命周期简单来说就是一个组件从创建到初始化到销毁的一个过程,在这个过程中有这些生命周期钩子函数我们可以更方便的去操作整一个组件。
如果你觉得不错,或者发现文章中的错误,或者有更好的建议,欢迎评论或进前端全栈群:866109386,来交流讨论吹水
出处:https://www.cnblogs.com/huangenai/p/9700517.html


http://www.niftyadmin.cn/n/1301303.html

相关文章

CocosCreator小游戏如何在pc端测试开发

现在我们希望小游戏能在pc端做测试&#xff0c;但是这样会调用不了微信的一些接口。 所以&#xff0c;小游戏在pc端测试明显有两个问题&#xff1a; 1、如果在pc端就调用不到微信小游戏的一些接口&#xff1b; 2、如果每次测试都要打包成微信小游戏&#xff0c;这样又很麻烦…

spring+cloud_alibaba简单学习二

今天单独研究源码的Sentine(哨兵)项目&#xff0c;源码地址再开传送门 https://github.com/spring-cloud-incubator/spring-cloud-alibaba 这个子项目和我们用的springboot项目有点不一样&#xff0c;不管&#xff0c;先分析 1永远第一步&#xff0c;看pom.xml文件 前面引入…

react与fetch

JavaScript 中的 ajax 很早之前就有一个诟病————复杂业务下的 callback 嵌套的问题。promise 正是 js 中解决这一问题的钥匙。 接下来我们在react项目中应用到的fetch 就用到了最新的 promise。 那我们如何在react项目中应用fetch呢&#xff1f; 第一步&#xff1a;安装 用…

CocosCreator资源释放总结

在用CocosCreator做项目的时候&#xff0c;如果项目过大&#xff0c;资源很多&#xff0c;然后&#xff0c;现在我们假设我们这样设计架构&#xff1a; 1、打开一个界面&#xff08;预制体&#xff09;的时候&#xff0c;有关这个预制体的图片资源也用cc.loader加载进来&#…

spring+cloud_alibaba简单学习三

继续哨兵项目分析讲解&#xff08;我爱这个项目名字&#xff09; 引入一个,同样用到了我们看到的ConcurrentHashMap(上一节有讲到) 往上找 bean的后置处理器&#xff0c;终于找到个能看懂的东西了&#xff0c;继续往上&#xff0c;找到了OBject对象实例化qi 最高接口了&#x…

Vue 爬坑之路 — vue-cli 3.x 搭建项目

一、安装 vue/cli 更新到 3.x 之后&#xff0c;vue-cli 的包名从vue-cli 改成了 vue/cli 如果之前全局安装了旧版本的vue-cli (1.x 或 2.x)&#xff0c;首先需要使用以下命令卸载掉 // 如果没有安装旧版本的 vue-cli 可以跳过卸载直接安装 npm uninstall vue-cli -g # OR …

CocosCreator事件定义

以下是根据CocosCreator接口做的—全局事情管理类。 /**全局事件管理类&#xff0c;主要是在各个脚本之间发送消息以下的test可以为公司名 */window.test window.test || {}; (function() {var EventCtrl {};//发送没有数据的事件EventCtrl.sendNormalEvent function(event…

springboot2+SSL组建简单的HTTP请求转到HTTPS安全协议请求

这里先讲下http和https请求不同&#xff0c;自己百度然后总结了一下 HTTP&#xff1a;是互联网上应用最为广泛的一种网络协议&#xff0c;是一个客户端和服务器端请求和应答的标准&#xff08;TCP&#xff09;&#xff0c;用于从WWW服务器传输超文本到本地浏览器的传输协议&…