首页 > 其他分享 >Vue3的学习---6

Vue3的学习---6

时间:2024-08-16 22:15:27浏览次数:15  
标签:学习 Vue console log DOM 周期函数 --- 实例 Vue3

6.Vue生命周期

6.1 生命周期

6.1.1 生命周期图示

img

从图中可以看出,一个组件从被创建到最后被销毁,总共要经历8个过程:

  1. beforeCreate:实例创建前
  2. created:实例创建完毕
  3. beforeMount:DOM挂载前
  4. mounted:DOM挂载完毕
  5. beforeUpdate:数据更新前
  6. unpdated:数据更新完毕
  7. beforeUnmount:解除DOM挂载前
  8. unmounted:解除DOM挂载完毕

6.1.2 代码演示

<body>
    <div id="app">
        <mycomponent v-if="isShow"></mycomponent>
        <button @click="change">{{ msg }}</button>
    </div>

    <script src="../js/vue3.js"></script>
    <script>
        const app = Vue.createApp({
            data() {
                return {
                    isShow: true,
                    msg: '隐藏'
                }
            },
            methods: {
                change() {
                    this.isShow = !this.isShow
                    this.msg = this.isShow ? '隐藏' : '显示'
                }
            }
        })

        app.component('mycomponent', {
            template: `<div>
                        {{ num }} <button @click="add">加</button>
                    </div>`,
            data() {
                return {
                    num: 0
                }
            },
            methods: {
                add() {
                    this.num++
                }
            },
            beforeCreate() {
                console.log('beforeCreate - Vue实例创建前的生命周期函数')
            },
            created() {
                console.log('created - Vue实例创建后的生命周期函数')
            },
            beforeMount() {
                console.log('beforeMount - Vue实例挂载DOM前的生命周期函数')
            },
            mounted() {
                console.log('mounted - Vue实例挂载DOM后的生命周期函数')
            },
            beforeUpdate() {
                console.log('beforeUpdate - 数据更新前的生命周期函数')
            },
            updated() {
                console.log('updated - 数据更新后的生命周期函数')
            },
            beforeUnmount() {
                console.log('beforeUnmount - Vue实例卸载前的生命周期函数')
            },
            unmounted() {
                console.log('unmounted - Vue实例卸载后的生命周期函数')
            }
        })

        app.mount('#app')
    </script>
</body>

6.2 在Vue中操作DOM

<body>
    <div id="app">
        <mycomponent v-if="isShow"></mycomponent>
        <button @click="change">{{ msg }}</button>
    </div>

    <script src="../js/vue3.js"></script>
    <script>
        const app = Vue.createApp({
            data() {
                return {
                    isShow: true,
                    msg: '隐藏'
                }
            },
            methods: {
                change() {
                    this.isShow = !this.isShow
                    this.msg = this.isShow ? '隐藏' : '显示'
                }
            }
        })

        app.component('mycomponent', {
            template: `<div>
                        {{ num }} <button @click="add" ref="btn">加</button>
                    </div>`,
                    // ref="btn" 引用,用于获取按钮元素
            data() {
                return {
                    num: 0
                }
            },
            methods: {
                add() {
                    this.num++
                }
            },
            beforeCreate() {
                console.log('beforeCreate - Vue实例创建前的生命周期函数')
            },
            created() {
                console.log('created - Vue实例创建后的生命周期函数')
            },
            beforeMount() {
                console.log('beforeMount - Vue实例挂载DOM前的生命周期函数')
            },
            mounted() {
                let domObj = this.$refs.btn
                // console.log(domObj)
                domObj.style.color = 'skyblue'
                console.log('mounted - Vue实例挂载DOM后的生命周期函数')
            },
            beforeUpdate() {
                console.log('beforeUpdate - 数据更新前的生命周期函数')
            },
            updated() {
                console.log('updated - 数据更新后的生命周期函数')
            },
            beforeUnmount() {
                console.log('beforeUnmount - Vue实例卸载前的生命周期函数')
            },
            unmounted() {
                console.log('unmounted - Vue实例卸载后的生命周期函数')
            }
        })

        app.mount('#app')
    </script>
</body>

标签:学习,Vue,console,log,DOM,周期函数,---,实例,Vue3
From: https://www.cnblogs.com/yishengwanwuzhao/p/18363752

相关文章

  • esp-toothbrush 硬件原理图介绍
    前言个人邮箱:[email protected]项目视频链接硬件介绍电池管理(1)我们项目采用TP4056电源芯片给锂电池充电。因为我们采用的是3.7V锂电池,通过插上USB接口5V供电。通过查看TP4056芯片手册的典型应用可知,该芯片是满足要求的。(2)通过典型应用,我们基本可以知道......
  • 认知觉醒-4-改变才是根本
    什么是成长权重《认知觉醒》提到了一个个人成长中的概念,叫做成长权重对比,作者周岭认为学习、思考、行动、改变在个人成长中的权重占比是不一样的。并不是说学的越多,成长就会越快,相反,盲目的学习只会让自己陷入焦虑怪圈,因为我们都会默认收获需要正比于付出,当自己花了大量精力学习但......
  • docker compose of kafka and kafka-ui
    尝试了半天才成功:docker-compose.yml#CopyrightBroadcom,Inc.AllRightsReserved.#SPDX-License-Identifier:APACHE-2.0version:"2"services:kafka-ui:image:provectuslabs/kafka-ui:latestports:-"8080:8080"en......
  • 嵌入式学习DAY32---Linux软件编程---网络编程
    目录一、抓包软件的使用1.1.wireshark         1.作用1.2.UDP包头二、TCP编程2.1.发送信息1.创建套接字2.配置目的对象信息3.将自己的端口和ip和套接字绑定4.建立连接5.发消息6.关闭套接字2.2.接收消息1.创建套接字2.配置自己的信息并将自己的端口和i......
  • GLM4与ChatGLM-6B
    GLM4与ChatGLM-6B在多个方面存在区别,以下是对两者差异的详细分析:一、模型规模与参数GLM4:GLM4系列模型,如GLM-4-9B,具有更大的模型规模。以GLM-4-9B为例,其参数量达到90亿,这相比一些较小的模型提供了更强的处理能力和更高的性能。ChatGLM-6B:ChatGLM-6B的参数量相对较少,为62亿。......
  • C安全编程教学-预处理器-避免不安全宏参数的副作用
    注:本课程参考文献《C安全编码标准》 欢迎关注我......
  • 【机器学习】简析决策树
    决策树的直观理解决策树是一种常用的机器学习算法,用于分类和回归任务。为了让你理解决策树的原理,我将用一个形象的类比来解释。想象一下,你在参加一个问答游戏,目的是猜出某个人正在想的一种水果。这个人会依次回答你提出的各种问题,直到你猜到正确的水果。比如,你可能会问:......
  • IDEA日常爆红:Cannot resolve plugin org.apache.maven.plugins:maven-war-plugin
    一、在写这篇文章之前,我面对这些爆红,第一时间去寻找AI帮助,这些人工智障千篇一律地回答几乎让我奔溃!!终于还是在csdn上找了解决方法,报错问题去csdn还是很不错的选择。以下是解决办法:二、①.在 setting.xml 文件中的镜像源,首先找到这个标签②.在上面标签中插入以下代码<!--......
  • Edge-TTS:文字转语音的魔法棒,让你的世界“声”动起来!
    嘿,听我说,Edge-TTS可不简单!想象一下,你正对着电脑屏幕上的密密麻麻的文字发愁,突然,一根神奇的“魔法棒”——Edge-TTS出现在你眼前。在Edge-TTS在线工具上你轻轻一点,那些静止的文字就像被施了魔法一样,瞬间“活”了起来,变成了一个个生动有趣的声音,在你的耳边跳跃、舞动。Edge-TTS的......
  • 操作系统-系统环境
    一、UNIX系统介绍​诞生于1971年美国AT&T公司的贝尔实验室,主要开发者是丹尼斯.里奇、肯.汤普逊。​ 该系统的主要特点是支持多用户、多任务,并支持多种处理器架构,同时具有高安全性、高可靠性、高稳定性,既可以构建大型关键业务系统的商业服务器,也可以构建面向移动终端、手持设......