Vue2.0到3.0的过渡,setup,ref函数,reactive函数,计算属性computed

news/2024/5/17 1:47:25/文章来源:https://blog.csdn.net/m0_63470734/article/details/126917142

setup

1、Vue3.0的组件中所有用到的:数据、方法等等,均要配置在setup中,若要使用里面的数据,可以用return将其返回出来

2、若在setup中返回的是一个对象,则对象中的数据、方法、在模板中均可直接使用

例如

<template><div class="home"><h1>{{msg}}</h1><h2>{{name}}</h2><button @click="fn">打印小羊</button></div>
</template><script>export default {setup() {// 现在暂时还不考虑响应式数据的问题// 数据 let msg="0730"let name="小狮子"//方法let fn=function(){console.log("小羊")}return {msg,name,fn}}}
</script>

界面效果,以及点击按钮后控制台打印的内容

3、setup的另一种写法(更简洁)

直接setup属性写入script标签中即可,不再使用export defaultsetup函数以及return

<template><div class="home"><h1>{{msg}}</h1><h2>{{name}}</h2><button @click="fn">打印小羊</button></div>
</template><script setup>// 现在暂时还不考虑响应式数据的问题// 数据 let msg="0730"let name="小狮子"let fn=function(){console.log("小羊")}</script>

4、注意

  • 尽量不要和Vue2.0配置混用

  • Vue2.0配置(data,methods,computed......)中可以访问setup中的属性,方法

  • 但在setup中不能访问到Vue2.0配置(data,methods,computed......)

  • 如有重名,setup优先

  • setup不能是一个async函数,因为返回值不再是return的对象,而是Promise,模板看不到return对象中的属性

ref函数

1、作用:定义一个响应式的数据(一般用于基本数据类型嵌套层级比较低的引用数据类型

2、语法:

例如  :声明一个响应式数据变量a 给它赋值为"666" 

        const    a= ref("666")

  • 在script标签内操作a的数据时需要用 .value 即 a.value

  • 模板(template)中读取数据不需要.value,直接<div>{{a}}</div>

  • 响应式数据一定要用importvue引入

<template><div class="home"><h1>{{msg}}</h1><h2>{{name}}</h2><button @click="fn">将小狮子变大狮子</button><h1>{{msg1}}</h1><h2>{{name1}}</h2><button @click="fn1">将小羊变大羊</button></div>
</template><script setup>import{ref} from "vue" //引入响应式数据let msg="0730"let name="小狮子"let msg1=ref("1020")let name1=ref("小羊")let fn=function(){name="大狮子"console.log(name,"不是响应式数据")}let fn1=function(){name1.value="大羊"console.log(name1.value,"这是响应式数据")}</script>

效果图:

当我们点击第一个按钮时,界面的反应以及控制台打印如下:

 

随着数据改变而界面没有改变说明这不是响应式数据。

 当我们点击第二个按钮时,界面的反应以及控制台打印如下:

 

界面随着数据改变而改变说明这是响应式数据。

reactive函数

  • 作用:定义一个引用数据类型的响应式数据

  • 语法:和ref函数类似,如 const   obj= reactive({name:"小狮子",age:"18"}),但在使用该数据时无论是在template还是script标签里都是直接使用即可,不需要像ref函数在script标签里的.value一样使用

  • reactive定义的响应式数据是“深层次的”

内部基于ES6的Proxy实现,通过代理对象内部的数据都是响应式的

<template><div><template v-for="el in arr"><h1>{{el.msg}}</h1><h2>{{el.name}}</h2></template><button @click="fn1">改变第一个name</button></div>
</template><script setup>import{reactive} from "vue"let arr=reactive([{msg:"0730",name:"小狮子"},{msg:"1020",name:"小羊"}])let fn1=function(){arr[0].name="大狮子"}</script>

效果图:

点击按钮之后的变化

 同样证明出是响应式数据。

计算属性computed

用法和2.0完全一致。

注意:

1、计算属性最大的特点就是会把使用到的数据的属性缓存起来,防止页面发生大量重复计算

2、方法没有将计算结果缓存起来,任何数据发生改变,方法都会被重新调用一遍 方法常常是作用的事件使用,计算属性常常是动态计算结果时使用。

3、如果是修改了data中监听的某个属性值内部的数据,计算属性就不会重新运行
//比如:计算属性使用的是setup中的一个数组,某个交互把数组内部的某个下标的值改了,但是这个数组没有改变,就不会触发计算属性

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

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

相关文章

[Git] 系列三随意修改提交记录以及一些技巧

[Git] 系列三随意修改提交记录以及一些技巧 Author: Xin Pan Date: 2022.09.17 文章目录[Git] 系列三随意修改提交记录以及一些技巧整理提交记录未知提交号哈希值时怎么办&#xff1f;一些技巧本地栈式提交方法一方法二TagDescribe高级命令总结好了&#xff0c;大概总结好了。…

搭建游戏要选什么样的服务器?

服务器是游戏平台数据传输的重要载体&#xff0c;事关我们游戏创业发展的稳定性、安全性。那么&#xff0c;游戏平台搭建要选什么服务器&#xff1f;有什么参考指标&#xff1f;本文将带领大家一探究竟&#xff01; 首先是“游戏平台搭建要选择什么服务器”&#xff0c;我们可…

论文阅读_对比学习_SimCSE

英文题目&#xff1a;SimCSE: Simple Contrastive Learning of Sentence Embeddings 中文题目&#xff1a;SimSCE&#xff1a;用简单的对比学习提升句嵌入的质量 论文地址&#xff1a;https://export.arxiv.org/pdf/2104.08821.pdf 领域&#xff1a;自然语言处理&#xff0c;对…

Redis的基本使用

1.Redis简介 &#xff08;1&#xff09;什么是Redis ①Redis是一个基于内存的key-value结构数据库 ②基于内存存储&#xff0c;读写性能高 ③适合存储热点数据(热点商品、资讯、新闻) ④Redis是一个开源的内存中的数据结构存储系统&#xff0c;它可以用作&#xff1a;数据库、…

计组--存储系统

存储系统 思维导图&#xff1a; 存储器概述 存储器的分类 按在计算机中的作用(层次)分类 主存储器&#xff0c;简称主存(内存) 存放计算机运行期间所需的程序和数据&#xff0c;CPU可以直接对其进行访问。 辅助存储器&#xff0c;简称辅存(外存) 辅存的内容需要调入主存后才…

普中A6开发版——XPT2046四引脚切换测量(含详细教程以及原理图等资料)

文章目录一、简介二、原理图以及手册三、接线四、选择数码管芯片原理讲解五、代码一、简介 本文介绍了XPT2046的使用方法以及普中A6开发版的接线等&#xff0c;并从原理图以及手册中摘选了详细的介绍&#xff0c;充分理解其工作原理。XPT2046本来是一个电阻式触摸屏控制器&…

监控系统架构方案

前言 对于企业级服务器管理&#xff0c;站群管理&#xff0c;针对服务器的监控是非常必要的。 通常&#xff0c;在电脑出现卡死&#xff0c;或进程停止或被挂起的情况下&#xff0c;大家都会使用任务管理器查看进程情况。针对电脑流畅性或资源优化&#xff0c;通常会使用资源管…

物联网开发笔记(19)- 使用Micropython开发ESP32开发板之连接WIFI热点

我们的ESP32开发板是拥有WIFI和蓝牙功能的。这里我们先告诉大家如何将ESP32开发板连接到我们家里的无线路由器上&#xff0c;并和连接到家里无线路由器的一台电脑进行通讯。 一、环境 ESP32开发板Thonny IDEWin10网络调试助手工具 后面设备联网的基本信息&#xff1a;开发板IP…

网课答案查题方法详细步骤

网课答案查题方法详细步骤 本平台优点&#xff1a; 多题库查题、独立后台、响应速度快、全网平台可查、功能最全&#xff01; 1.想要给自己的公众号获得查题接口&#xff0c;只需要两步&#xff01; 2.题库&#xff1a; 题库&#xff1a;题库后台&#xff08;点击跳转&#…

Dobbo微服务项目实战(详细介绍+案例源码) - 1.项目介绍及环境配置

系列文章目录 项目介绍及环境配置 文章目录系列文章目录一、项目介绍1. 功能2. 技术选型3. 页面预览⑴. 登录⑵. 交友&#xff08;主页&#xff09;⑶. 探花⑷. 搜附件⑸. 桃花传音⑹. 测灵魂⑺. 圈子⑻. 消息⑼. 小视频⑽. 我的二、开发工具1. YAPI2. Android模拟器3. 调试工…

ElasticSearch 命令总结

目录0&#xff0c;ES 与关系型数据库类比1&#xff0c;查看集群信息2&#xff0c;查看索引信息3&#xff0c;创建索引1&#xff0c;创建索引2&#xff0c;重建索引4&#xff0c;文档相关操作1&#xff0c;查看文档2&#xff0c;写入文档3&#xff0c;更新文档4&#xff0c;删除…

上海亚商投顾:A股持续调整 券商成做空主力

上海亚商投顾前言&#xff1a;无惧大盘大跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 市场情绪三大指数今日低开低走&#xff0c;午后均跌超2%&#xff0c;证券、房地产、煤炭等板块跌幅居前。券商股全线下挫&am…

centos8升级宝塔导致的openssl系列问题

故事的发生是这样的&#xff0c;从前有座山 这个问题很古怪&#xff0c;起先是我把宝塔面板从7.9.3升级到7.9.4&#xff0c;结果升级后宝塔弹出 libk5crypto.so.3: undefined symbol: EVP_KDF_ctrl, version OPENSSL_1_1_1b 再后来就是重启的话&#xff0c;连ssh都进不去&…

第137篇 荷兰拍卖

介绍荷兰拍卖,并通过简化版Azuki荷兰拍卖代码,讲解如何通过荷兰拍卖发售 ERC721标准的NFT。 1.荷兰拍卖 荷兰拍卖(Dutch Auction)是一种特殊的拍卖形式。 亦称“减价拍卖”,它是指拍卖标的的竞价由高到低依次递减直到第一个竞买人应价(达到或超过底价)时击槌成交的一种…

05-Java面向对象

文章目录初识面向对象面向过程&面向对象回顾方法及加深对象的创建分析创建与初始化对象构造器详解构造器-无参&#xff08;默认&#xff09;构造器-有参创建对象内存分析(简易)面向对象的三大特征封装封装的作用封装演示继承继承示例SuperSuper注意点super VS this方法重写…

Linux 虚拟地址空间

目录 1、一段代码引出一个问题 运行结果&#xff1a; 讨论&#xff1a; 2、Linux下进程虚拟地址空间分布 3、什么是虚拟地址空间&#xff1f; 4、虚拟地址出现之前&#xff1a;进程直接访问物理内存 5、再述虚拟地址空间 虚拟地址空间结构体是如何进行区域划分的呢&…

HTTP1.x协议详解和HTTP2.0笔记

http协议的作用就是指定两个web应用&#xff0c;之间的一种规则&#xff0c;各种特点&#xff0c;管道化&#xff0c;io多路复用&#xff0c;缓存&#xff0c;状态码&#xff0c;都是基于协议之间的字段&#xff0c;和io之间的调度来实现 HTTP的诞生 1989 年 3 月 CERN&#x…

Linux运维笔记[2]-宝塔面板

宝塔面板 宝塔Linux面板是提升运维效率的服务器管理软件,支持一键LAMP/LNMP/集群/监控/网站/FTP/数据库/JAVA等100多项服务器管理功能。 有30个人的专业团队研发及维护,经过200多个版本的迭代,功能全,少出错且足够安全,已获得全球百万用户认可安装。 openEuler安装宝塔面板…

ElasticSearch(九)【SpringBoot整合】

九、SpringBoot整合Elasticsearch 9.1 基本环境配置 创建一个springboot工程springboot-elasticsearch在pom.xml导入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-elasticsearch</artifac…

Kafka3.1简介及Kafka3.1部署、原理和API开发使用介绍

Kafka3.1简介及Kafka3.1部署、原理和API开发使用介绍第1章-kafka简介 1-1.消息队列简介 什么是消息队列 “消息队列”是在消息的传输过程中保存消息的容器。“消息”是在两台计算机间传送的数据单位。 英文名&#xff1a;Message Queue&#xff0c;经常缩写为MQ 可以简单理…