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

目录

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.rhkb.cn/news/387207.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[Bugku] web-CTF靶场详解!!!

平台为“山东安信安全技术有限公司”自研CTF/AWD一体化平台,部分赛题采用动态FLAG形式,避免直接抄袭答案。 平台有题库、赛事预告、工具库、Writeup库等模块。 ------------------------------- Simple_SSTI_1 启动环境: 页面提示传入参数f…

【Linux】make/Makefile的理解

1.make是一个命令,makefile是一个文件, 依赖关系和依赖方法. a.快速使用一下 i.创建一个Makefile文件(首字母也可以小写) b.依赖关系和依赖方法 i.依赖关系: 我为什么要帮你? mybin:mytest.c ii.依赖方法: 怎么帮? gcc -o mybin mytest.c make之前要注意先创建…

2024电赛H题参考方案(+视频演示+核心控制代码)——自动行驶小车

目录 一、题目要求 二、参考资源获取 三、TI板子可能用到的资源 1、环境搭建及工程移植 2、相关模块的移植 四、控制参考方案 1、整体控制方案视频演示 2、视频演示部分核心代码 五、总结 一、题目要求 小编自认为:此次控制类类型题目的H题,相较于往年较…

Snowflake 集成模式:Apache Kafka 与零 ETL 和反向 ETL

Snowflake 是领先的云原生数据仓库。集成模式包括批量数据集成、零 ETL 和使用 Apache Kafka 的近乎实时的数据摄取。这篇博文探讨了不同的方法,并发现了它们的利弊。根据行业建议,建议避免使用反向 ETL 等反模式,而是使用数据流来增强企业架…

MySQL基础练习题12-使用唯一标识码替换员工ID

题目:展示每位用户的 唯一标识码(unique ID );如果某位员工没有唯一标识码,使用 null 填充即可。 准备数据 分析数据 题目:展示每位用户的 唯一标识码(unique ID );如果…

Vue2从基础到实战(指令篇)

案例&#xff1a;动态切换图片 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Vue.js 示例</ti…

划重点!「2024观测云发布会」亮点速览

在刚刚落幕的「2024观测云发布会」上&#xff0c;CEO蒋烁淼及其团队以「ENDLESS EVOLUTION」为主题&#xff0c;向大家展示了观测云近两年的革新之旅。不仅深入回顾了观测云在产品创新、技术突破上的持续追求&#xff0c;更以远见卓识&#xff0c;描绘了一幅充满潜力与创新的未…

ChatGPT小狐狸AI付费创作系统v3.0.3+前端

小狐狸GPT付费体验系统的开发基于国外很火的ChatGPT&#xff0c;这是一种基于人工智能技术的问答系统&#xff0c;可以实现智能回答用户提出的问题。相比传统的问答系统&#xff0c;ChatGPT可以更加准确地理解用户的意图&#xff0c;提供更加精准的答案。同时&#xff0c;小狐狸…

【C语言】整数类型及其数值范围(截断+数据)

&#x1f984;个人主页:小米里的大麦-CSDN博客 &#x1f38f;所属专栏:https://blog.csdn.net/huangcancan666/category_12718530.html ⚙️操作环境:Visual Studio 2022 目录 一、介绍 二、整数类型表 1.分析 2.小结 三、截断 1.什么是截断&#xff1f; 2.为什么需要截断…

为什么要做边界值测试?

边界值测试的理解 边界值测试&#xff08;Boundary Value Testing&#xff09;是一种常用的软件测试方法&#xff0c;它侧重于测试输入值的边缘或临界条件。这些边缘条件通常包括最小值、最大值以及接近这些最小值和最大值的值。边界值测试的基本思想是&#xff0c;许多软件错…

WEB前端开发中如何实现大文件上传?

大文件上传是个非常普遍的场景&#xff0c;在面试中也会经常被问到&#xff0c;大文件上传的实现思路和流程。在日常开发中&#xff0c;无论是云存储、视频分享平台还是企业级应用&#xff0c;大文件上传都是用户与服务器之间交互的重要环节。随着现代网络应用的日益复杂化&…

贪心算法-买卖股票问题

贪心算法&#xff08;Greedy Algorithm&#xff09;是一种在每一步选择中都采取在当前状态下最好或最优&#xff08;即最有利&#xff09;的选择&#xff0c;从而希望导致结果是全局最好或最优的算法。贪心算法并不保证总是能得到全局最优解&#xff0c;但它通常能得到不错的解…

【排序算法(二)】——冒泡排序、快速排序和归并排序—>深层解析

前言&#xff1a; 接上篇&#xff0c;排序算法除了选择排序&#xff08;希尔排序&#xff09;和插入排序&#xff08;堆排序&#xff09;之外&#xff0c;还用交换排序&#xff08;冒泡排序、快速排序&#xff09;和归并排序已经非比较排序&#xff0c;本篇来深层解析这些排序算…

Java 基础 and 进阶面试知识点(超详细)

一个 Java 文件中是否可以存在多个类&#xff08;修饰类除外&#xff09;&#xff1f; 一个 Java 文件中是可以存在多个类的&#xff0c;但是一个 Java 文件中只能存在一个 public 所修饰的类&#xff0c;而且这个 Java 文件的文件名还必须和 public 所修饰类的类名保持一致&a…

轻松入门Linux—CentOS,直接拿捏 —/— <1>

一、什么是Linux Linux是一个开源的操作系统&#xff0c;目前是市面上占有率极高的服务器操作系统&#xff0c;目前其分支有很多。是一个基于 POSIX 和 UNIX 的多用户、多任务、支持多线程和多 CPU 的操作系统 Linux能运行主要的UNIX工具软件、应用程序和网络协议 Linux支持 32…

C++入门基础:C++中的循环语句

循环语句是编程语言中用来重复执行一段代码直到满足特定条件的一种控制结构。它们对于处理需要重复任务的场景非常有用&#xff0c;比如遍历数组、累加数值、重复执行某项操作直到满足条件等。 但是在使用循环语句的时候需要注意下哈&#xff0c;有时候一不小心会构成死循环或者…

centos安装kubernetes

本章程安装k8s 1.30版本为例。 1、环境配置 k8s 自1.24版本起&#xff0c;移除了dockershim了&#xff0c;1.30使用了containerd运行部署&#xff0c;containerd部署文档参考centos安装containerd-CSDN博客 k8s部署环境可参考容器运行时 | Kubernetes 1.1、修改主机名称 #…

【Django5】模型定义与使用

系列文章目录 第一章 Django使用的基础知识 第二章 setting.py文件的配置 第三章 路由的定义与使用 第四章 视图的定义与使用 第五章 二进制文件下载响应 第六章 Http请求&HttpRequest请求类 第七章 会话管理&#xff08;Cookies&Session&#xff09; 第八章 文件上传…

MacOS 使用DBeaver连接MySQL数据库 以及常见的问题

文章目录 1 DBeaver介绍2 下载安装3 连接MySQL4 DBeaver使用中的常见问题1 DBeaver驱动无法下载2 连接mysql时报错 Public Key Retrieval is not allowed3 mysql出现错误提示&#xff1a;connection refused: Communications link failure The last packet sent successfully t…

【JavaScript】详解Day.js:轻量级日期处理库的全面指南

文章目录 一、Day.js简介1. 什么是Day.js&#xff1f;2. 安装Day.js 二、Day.js的基本用法1. 创建日期对象2. 格式化日期3. 解析日期字符串4. 操作日期5. 比较日期 三、Day.js的高级功能1. 插件机制2. 国际化支持 四、实际应用案例1. 事件倒计时2. 日历应用 在JavaScript开发中…