IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 62- 生命周期 -> 正文阅读

[JavaScript知识库]62- 生命周期

生命周期

生命周期函数:在一个组件的生命周期范围内某一阶段自动执行的函数

vue 官方生命周期图示
在这里插入图片描述

初始化

1、beforeCreate ()在实例生成之前自动执行
2、created()在实例生成之前自动执行
3、beforeMount () 在组件内容被渲染到页面之前调用
4、mounted()在组件内容被渲染到页面之后调用
在这里插入图片描述

      const app = Vue.createApp({
        data() {
          return {
            msg: "hello",
          };
        },
        // 生命周期函数:在一个组件的生命周期范围内某一刻自动执行的函数
        // 1、在实例生成之前自动执行
        beforeCreate () {
            console.log('beforeCreate');
        },
        // 2、在实例生成之前自动执行
        created () {
            console.log('created');
        },
        // 3、在组件内容被渲染到页面之前调用,打印为空,因为还没有渲染
        beforeMount () {
            console.log(document.getElementById('app').innerHTML)
            console.log('beforeMount');
        },
        template:`<h1>{{msg}}</h1>`,
        // 4、在组件内容被渲染到页面之后调用
        mounted () {
            console.log(111,document.getElementById('app').innerHTML)

        },
        

更新状态

5、beforeUpdate()当数据发生变化调用,页面还没更新
6、updated ()数据发生变化,页面也更新完时
在这里插入图片描述
示例,将数据进行改变,可以查看到页面内容改变对应的钩子函数,大多数情况下使用beforeUpdate()

// 5、当数据发生变化调用,页面还没更新
beforeUpdate () {
    console.log(222,document.getElementById('app').innerHTML)
    console.log('beforeUpdate');
},
// 6、数据发生变化,页面也更新完时
updated () {
    console.log(333,document.getElementById('app').innerHTML)
    console.log('updated');
},

在这里插入图片描述

销毁vue实例

7、beforeUnmount() 当vue实例失效时,自动执行函数
8、unmounted() 当vue实例失效,dom完全销毁,自动执行函数

        // 7、当vue实例失效时,自动执行函数
        beforeUnmount() {
          console.log(444, document.getElementById("app").innerHTML);

          console.log("beforeUnmount");
        },

        // 8、当vue实例失效,dom完全销毁,自动执行函数
        unmounted() {
          console.log(555, document.getElementById("app").innerHTML);

          console.log("unMounted");
        },
        template: `<h1>{{msg}}</h1>`,
      });
      app.mount("#app");
      //   延迟销毁
      setTimeout(() => {
        app.unmount("#app");
      }, 3000);

在这里插入图片描述
常用beforeUpdate();created();mounted()

捕获错误时调用

9、errorCaptured(err, instance, info) 全局的错误捕获

        // 9、全局的错误捕获
        errorCaptured(err, instance, info) {
            console.log(err, instance, info);
            return false;
        },

其他生命周期函数参考官方文档

完整代码

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>Document</title>
    <script src="js/vue.js"></script>
  </head>

  <body>
    <div id="app"></div>
    <script>
      const app = Vue.createApp({
        data() {
          return {
            msg: "hello",
          };
        },
        // 生命周期函数:在一个组件的生命周期范围内某一刻自动执行的函数
        // 1、在实例生成之前自动执行
        beforeCreate() {
          console.log("beforeCreate");
        },
        // 2、在实例生成之前自动执行
        created() {
          console.log("created");
        },
        // 3、在组件内容被渲染到页面之前调用,打印为空,因为还没有渲染
        beforeMount() {
          console.log("beforeMount");
        },
        // 4、在组件内容被渲染到页面之后调用
        mounted() {
          console.log("mounted");
        },

        // 5、当数据发生变化调用,页面还没更新
        beforeUpdate() {
          console.log(222, document.getElementById("app").innerHTML);
          console.log("beforeUpdate");
        },
        // 6、数据发生变化,页面也更新完时
        updated() {
          console.log(333, document.getElementById("app").innerHTML);
          console.log("updated");
        },
        // 7、当vue实例失效时,自动执行函数
        beforeUnmount() {
          console.log(444, document.getElementById("app").innerHTML);

          console.log("beforeUnmount");
        },

        // 8、当vue实例失效,dom完全销毁,自动执行函数
        unmounted() {
          console.log(555, document.getElementById("app").innerHTML);

          console.log("unMounted");
        },
        // 9、全局的错误捕获
        errorCaptured(err, instance, info) {
            console.log(err, instance, info);
            return false;
        },
        
        template: `<h1>{{msg}}</h1>`,
      });
      app.mount("#app");
      //   延迟销毁
      setTimeout(() => {
        app.unmount("#app");
      }, 3000);
    </script>
  </body>
</html>

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-10-09 16:11:30  更:2021-10-09 16:11:59 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/18 22:06:22-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码