vue3 生命周期函数 ref函数 计算属性

news2024/9/9 4:53:40

目录

01 setup 函数

02 vue3的生命周期函数

03 reactive 函数

04 toRef 函数

05 toRefs 函数

06 ref 函数

07 ref 属性

08 computed 计算属性


01 setup 函数

        vue3推出了setup函数,用作所有数据的初始化的函数,一切数据都定义到setup函数里面

        setup函数必须对外暴露一个对象 ,对象里面写你想要使用的数据

        在setup函数里面直接返回的数据 只能用作渲染 不能修改 因为没有双向数据绑定的效果

        setup函数内部没有this,因为这个函数执行的时候 当前组件还没有初始化成功

        setup函数是在组件初始化之前执行的 他返回的数据和函数可以在模板中使用

        但是还没有双向数据绑定的效果

02 vue3的生命周期函数

        vue3的生命周期函数有七个 分别是

        setup创建实例前,

        onBeforeMount 挂载dom前,onMounted 挂载dom后,

        onBeforeUpdate更新组件前,onUpdated更新组件后,

        onBoforeUnmount卸载销毁前,onUnmounted卸载销毁后

        vue3的生命周期函数 需要在setup函数里面定义 参数传入回调函数 进行执行

        需要使用哪个钩子函数,就需要从vue中解构引入进来

        vue3钩子函数 可以调用多次 不会被覆盖 都会执行  目的是为了分模块封装

03 reactive 函数

        reactive是一个函数,它可以定义一个复杂数据类型, 成为响应式数据

        使用步骤:

                1.import { reactive } from 'vue'

                2.在setup函数里面定义reactive对象, 对象内部包含每个数据

                3.最后setup函数把reactive函数的值作为返回值返回

                4.页面最后就可以使用reactive里面的数据了

        reactive 函数的参数的对象里面 可以定义数据和事件驱动函数

        事件驱动函数可以修改当前reactive里面的数据  具有双向数据绑定的效果

04 toRef 函数

        toRef函数可以把reactive里面的某个数据单独拿出来 并且依然保持双向数据绑定的效果

        使用步骤:

                1.引入 toRef 函数

                2. let 取出的变量 = toRef(要取出数据的reactive对象,'取出的数据变量名')

        通过toRef取出的数据 页面中也可以直接使用

        在方法中使用需要通过value属性 获取值和修改值 

05 toRefs 函数

        toRefs函数可以把reactive里面的数据都拿出来,使用...扩展运算符来展开数据,

使用toRefs展开的数据可以直接使用,不用加对象名.

        不使用toRefs,直接使用...扩展运算符展开的reactive数据 没有双向数据绑定的效果

06 ref 函数

        reactive能够定义复杂数据类型的数据为响应式数据

        ref 能够定义基本数据类型的数据为响应式数据

        ref 函数 修改值的时候或者获取值的时候(js操作) 需要.value

        在mustache语法中使用的使用可以省略.value

        ref 也可以定义复杂数据类型为响应式数据

        使用场景:

                当你明确知道需要的是一个响应式数据是对象, 那么就使用reactive即可,

                其他情况使用ref

07 ref 属性

        vue2通过标签的ref属性 可以获取当前节点的dom对象

                如果ref定义在自定义组件上面 可以获取该组件的对象

                this.$refs.ref的值  获取dom节点对象或者子组件对象

        vue3获取页面dom的步骤:

                1.在setup函数里面使用ref(null) 返回一个空节点对象

                2.在setup函数里面 return 返回的数据里面需要包含这个数据

                3.在页面标签上面 定义ref属性 等于setup返回的这个ref响应数据名称

                4.在onMounted钩子函数里面 就可以通过这个变量名.value获取节点对象

        如果有多个标签都定义同名的ref 那么会出现覆盖的问题

        如果想要通过ref属性 一次性获取一堆元素 

        那么 就得通过函数遍历 定义一个函数 暴露给模板使用 

        标签上面 :ref="这个函数名"  这个函数自动被遍历

        函数的参数是每次遍历到的元素 自己可以选择存放到指定数组里面

08 computed 计算属性

       定义计算属性 通过computed函数定义

           基本使用:

                let 计算属性 = computed(()=>{

                        调用时里面传一个回调函数,回调函数的返回值就是当前计算数据的变量

                        return 值;

                }) 

            高级使用

                let 计算属性 = computed({

                        get(){ 返回当前计算属性应该计算出来的值 },

                        set(){ 在计算属性的存值器里面修改 相关的变量的值 }

                })

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1961418.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python软件开发:AI毕业设计生成器引领未来

🌟 革新软件开发:Python毕业设计生成器引领未来 🚀 目录 🌟 革新软件开发:Python毕业设计生成器引领未来 🚀🎓 课题简介🌟 开发目的📈 开发意义 📚 研究方法&…

[ BLE4.0 ] 伦茨ST17H66开发-串口UART0的接收与发送

目录 一、前言 二、实现步骤 1.设置回调函数 2.关闭睡眠模式 三、效果展示 四、工程源代码 一、前言 串口通信在任何一款单片机开发中都是尤为重要的。本文涉及的开发所使用的例程依然是基于[ BLE4.0 ] 伦茨ST17H66开发-OSAL系统中添加自己的Task任务文章的工程源码&#x…

进程间通信--套接字socket

前面提到的管道、消息队列、共享内存、信号和信号量都是在同一台主机上进行进程间通信,那要想跨网络与不同主机上的进程之间通信,就需要Socket通信了。 实际上,Socket通信不仅可以跨网络与不同主机的进程间通信,还可以在同主机上…

一键升级GIS场景视觉效果,告别繁琐操作

在当今的数字化时代,GIS(地理信息系统)不再仅仅只能通过一些二维示意图或简陋的三维地形图表示,它可以通过专业的软件简单升级视效。想象一下,在你的GIS场景中,阳光明媚的天气、突如其来的暴风雨、缭绕的晨…

工时管理平台核心功能解析:你需要了解的

国内外主流的10款工时管理平台对比:PingCode、Worktile、Todoist、ClickUp、滴答清单、专注清单、一木清单、NarTick、Tweek、朝暮计划。 在选择合适的工时管理平台时,你是否感到挑战重重?市场上的各种选项似乎都声称能够提升效率和减轻管理负…

【SQL Server点滴积累】SQL Server 2016数据库邮件(Database Mail)功能故障的解决方法

今天和大家分享SQL Server 2016数据库邮件(Database Mail)功能故障的解决方法 故障现象: 在SQL Server 2016中配置完成数据库邮件(Database Mail)功能后,当你尝试发送测试邮件后,既收不到测试邮件,也不显示错误消息 KB3186435 -…

Python数值计算(11)——拉格朗日插值

本篇介绍一下多项式插值中,拉格朗日法的原理及其实现。 1. 一点数学知识 先引用数学背景。如果给定N个点,然后要求一个多项式通过这N个点,最简单直接的方式是列出线性方程求解,N个点可以确定N个未知量,则所求的拟合多…

下面关于枚举的描述正确的一项是?

A. 枚举中定义的每一个枚举项其类型都是String; B. 在Java中可以直接继承java.util.Enum类实现枚举类的定义; C. 利用枚举类中的values()方法可以取得全部的枚举项; D. 枚举中定义的构造方法只能够使用private权限声明; 答案选择…

springboot山东外事职业大学校园食堂点餐系统-计算机毕业设计源码10417

摘 要 近年来,随着国民收入的提高,各行业取得长足进步,也带动了互联网行业的快速发展,许多传统行业开始与互联网相结合,通过数字化转型打造新的发展生态。 本文针对山东外事大学校园食堂点餐系统的需求,基于…

Java内存区域与内存溢出异常详解

在Java编程中,理解Java虚拟机的内存布局及其管理机制对于开发高效、稳定的应用程序至关重要。Java虚拟机的内存主要分为几个运行时区域,这些区域各司其职,共同支撑起Java程序的运行。本文将详细探讨Java虚拟机的内存区域以及这些区域如何与内…

Yolov模型的使用及数据集准备(1)LabelImg的下载和使用

1、LabelImg下载: labelimg简单来说就是打标签用的软件,当需要使用自定义数据集进行模型训练时,往往需要使用该软件来打标签。 下载地址:GitHub - HumanSignal/labelImg 1.1下载之后对压缩包进行解压 2、打开电脑的anaconda pro…

MyBatis XML配置文件

目录 一、引入依赖 二、配置数据库的连接信息 三、实现持久层代码 3.1 添加mapper接口 3.2 添加UserInfoXMLMapper.xml 3.3 增删改查操作 3.3.1 增(insert) 3.3.2 删(delete) 3.3.3 改(update) 3.3.4 查(select) 本篇内容仍然衔接上篇内容,使用的代码及案…

8G 显存玩转书生大模型 Demo

创建可用环境 # 创建环境 conda create -n demo python3.10 -y # 激活环境 conda activate demo # 安装 torch conda install pytorch2.1.2 torchvision0.16.2 torchaudio2.1.2 pytorch-cuda12.1 -c pytorch -c nvidia -y # 安装其他依赖 pip install transformers4.38 pip in…

Moving Object Segmentation: All You Need Is SAM(and Flow) 论文详解

系列文章目录 文章目录 系列文章目录前言摘要1 引言2 相关工作3 SAM Preliminaries4 帧级分割Ⅰ:以流作为输入5 帧级分割Ⅱ:以流为提示6 序列级掩膜关联7 实验7.1 数据集7.2 评价指标7 .3 实施细节7.4 消融实验7.5 定量结果7 .定性可视化 8 结论致谢附录…

01 - 计算机组成原理与体系结构

文章目录 一,计算机系统硬件基本组成硬件软件 二,CPU的功能与组成功能组成运算器控制器 三,数据表示计算机的基本单位进制转换原码,反码,补码,移码数值表示范围浮点数表示 四,寻址五&#xff0c…

【Unity模型】古代亚洲建筑

在Unity Asset Store上,一款名为"Ancient Asian Buildings Pack"(古代亚洲建筑包)的3D模型资源包,为广大开发者和设计师提供了一个将古代亚洲建筑风格融入Unity项目的机会。本文将详细介绍这款资源包的特点、使用方式以…

如何选择合适的自动化测试工具!

选择合适的自动化测试工具是一个涉及多方面因素的决策过程。以下是一些关键步骤和考虑因素,帮助您做出明智的选择: 一、明确测试需求和目标 测试范围:确定需要自动化的测试类型(如单元测试、集成测试、UI测试等)和测试…

AI视频实战教程:DiffIR2VR-Zero-模糊视频8K高清修复技术

〔探索AI的无限可能,微信关注“AIGCmagic”公众号,让AIGC科技点亮生活〕 本文作者:AIGCmagic社区 猫先生 一、简 介 DiffIR2VR-Zero:一种创新的零样本视频恢复技术,该技术利用预训练的图像恢复模型,解决…

C++高性能通信:图形简述高性能中间件Iceoryx

文章目录 1. 概述2. 支持一个发布者多个订阅者2.2 Iceoryx为何不支持多个发布者发布到同一个主题 3. Iceoryx的架构和数据传输示意图3.1 发布者与订阅者的通信机制3.2 零拷贝共享内存通信机制 4. 使用事件驱动机制4.1 WaitSet机制4.2 Listener机制 5. 已知限制6. 参考 1. 概述 …

sci-hub下载不了的文献去哪里获取全文

我们在查找外文文献时经常会用到sci-hub,但sci-hub也有没有收录的文献,遇到这种情况我们可以用另一个途径来获取该文献。 例如这篇Wiley数据库中的文献:Unveiling Gating Behavior in Piezoionic Effect: toward Neuromimetic Tactile Sensin…