vue系列==vue3新语法
vue系列==vue3新语法
1、setup组合式API入口函数
2、利用ref函数定义响应式数据
3、利用reactive函数定义响应式数据
1、setup组合式API入口函数
1、Vue3为组合式API提供了一个setup函数,所有组合式API函数都是在此函数中调用的,它是组合式API的使用入口。setup函数接收两个参数:第1个参数是props对象,包含传入组件的属性;第2个参数是context上下文对象,包含attrs、emit、slot等对象属性。这两个参数在本节暂时不做深入讲解,在第4章中开始对它们进行学习。在使用组合式API定义响应式数据之前,有两个点需要我们重点关注:一个是setup函数必须返回一个对象,在模板中可以直接读取对象中的属性,以及调用对象中的函数;另一个是setup函数中的this在严格模式下是undefined,不能像选项式API那样通过this来进行响应式数据的相关操作
2、但是下面的代码却不能自动修改messge的值,因为他不是一个响应式的函数,所有不能进行响应式更改
<p>vue3新语法</p><div >{{ message }}</div><div><a :href="href">{{ href }}</a></div><div v-if="ok">This is OK</div><button v-on:click="changeMessage">Change Message</button></template> <script>export default {setup() {let message = 'Hello Vue 3.0'const href = "https://nodejs.org/zh-cn"const ok = truefunction changeMessage() {alert(message)message = 'ddddd'}return {message,href,ok,changeMessage}}}
2、利用ref函数定义响应式数据
1、ref是Vue3组合式API中常见的用来定义响应式数据的函数。ref函数接收一个任意类型的数据参数作为响应式数据,由Vue内部保存。ref函数返回一个响应式的ref对象,通过ref对象的value属性可以读取或者更新内部保存的数据。
2、下面的代码添加ref就可以变为响应式数据,更新的时候采用value的方式
3、ref函数除了可以接收基础类型的数据,还可以接收对象或数组类型的数据。
<template> <!-- vue3新语法 --><p>vue3新语法</p><div >{{ message }}</div><div><a :href="href">{{ href }}</a></div><div v-if="ok">This is OK</div><button v-on:click="changeMessage">Change Message</button></template> <script>import {ref} from "vue";export default {setup() {let message = ref('Hello Vue 3.0') //添加ref作为响应式数据const href = "https://nodejs.org/zh-cn"const ok = truefunction changeMessage() { //添加方法,响应式数据改变时,方法也会改变,采用value.value方式alert(message.value)message.value = 'ddddd'}return {message,href,ok,changeMessage}}}
3、利用reactive函数定义响应式数据
1、Vue3提供了reactive函数,让开发者可以一次性定义包含多个数据的响应式对象。reactive函数接收一个包含n个基础类型或对象类型属性数据的对象参数,它会返回一个响应式的代理对象,一般我们称此对象为“reactive对象”。
2、reactive函数进行的是一个深度响应式处理。也就是说,当我们通过reactive对象更新参数对象中的任意层级属性数据后,都会触发页面的自动更新。
3、如果你的数据结构比较简单,或者只需要跟踪顶层属性的变化,使用
ref就足够了。但如果你的数据结构复杂,需要跟踪嵌套属性的变化,那么reactive会是更好的选择。4、
<template> <!-- vue3新语法 --><p>vue3新语法</p><div >{{ personref.person }}</div><div >{{ personreactive.person }}</div><div >{{ personreactive.msg }}</div><div >{{ personreactive.person.name }}</div><div >{{ personreactive.person.age }}</div><div >{{ personreactive.trr }}</div><button @click="changePersonRef">Change Person Ref</button><button @click="changePersonReactive">Change Person Reactive</button><button @click="changePersonReactiveMsg">Change Person Reactive Msg</button><button @click="changePersonReactiveTrr">Change Person Reactive Trr</button></template> <script> import {reactive, ref} from "vue";export default {setup() {let personref = ref({person: 1, age: 20}); //ref 用于响应式数据let personreactive = reactive({msg: "hello",person:{name: "zhangsan", age: 20},trr: [1, 2, 3]})function changePersonRef() {personref.value.person = 2;}function changePersonReactive() {personreactive.person.name = "lisi";}function changePersonReactiveMsg() {personreactive.msg = "world";}function changePersonReactiveTrr() {personreactive.trr.push(4);}return {personref,personreactive,changePersonRef,changePersonReactive,changePersonReactiveMsg,changePersonReactiveTrr}},}
5、toRefs与toRef函数
1、toRefs函数能一次性将reactive对象包含的所有属性值都包装成ref对象,而toRef函数只能一次处理一个属性
2、使用reactive函数进行代码简化的问题
3、他的主要功能就是简化代码,从而可以提升可读性
4、下面是简化之后的代码
const staterefs = toRefs(personreactive)return {personref,personreactive,changePersonRef,changePersonReactive,changePersonReactiveMsg,changePersonReactiveTrr,msg: staterefs.msg,name: staterefs.person.name,age: staterefs.person.age,trr: staterefs.trr,}
相关文章:
vue系列==vue3新语法
vue系列vue3新语法 1、setup组合式API入口函数 2、利用ref函数定义响应式数据 3、利用reactive函数定义响应式数据 1、setup组合式API入口函数 1、Vue3为组合式API提供了一个setup函数,所有组合式API函数都是在此函数中调用的,它是组合式API的使用入口…...
001-Kotlin界面开发之Jetpack Compose Desktop学习路径
Compose Desktop学习之路 学习过程 理解Kotlin的基本语法 Compose Desktop采用Kotlin构建,因此对Kotlin的基本语法有很好的理解是必不可少的。你可以从官方的Kotlin文档开始。 用一句话概括,Kotlin是一种现代的、静态类型的编程语言,它结合…...
qt QStackedLayout详解
QStackedLayout类提供了一种布局方式,使得在同一时间内只有一个子部件(或称为页面)是可见的。这些子部件被维护在一个堆栈中,用户可以通过切换来显示不同的子部件,适合用在需要动态显示不同界面的场景,如向…...
python实现钉钉群机器人消息通知(消息卡片)
直接上代码 python """ 飞书群机器人发送通知 """ import time import urllib3 import datetimeurllib3.disable_warnings()class DingTalkRobotAlert():def __init__(self):self.webhook webhook_urlself.headers {Content-Type: applicatio…...
防火墙技术应用
目录 防火墙安全功能指标防火墙性能指标防火墙部署防火墙应用案例-Linux防火墙防火墙应用案例-华为包过滤防火墙ACL(基本)防火墙应用案例-工控防火墙部署 防火墙安全功能指标 我们防火墙也会提供各种各样的互联接口,它这种接口有以太网、快速以太网、千兆以太网&am…...
docker engine stopped
1)环境:win 10 2)docker安装时已经已经安装了虚拟机 3)启用网络适配器 4)启用docker服务(依赖服务LanmanServer) 5)全都弄好了,docker还是打不开,没办法了&a…...
Redis- 内核的分配内存限制的警告“WARNING Memory overcommit must be enabled!”
文章目录 问题描述报错原因影响解决方案注意事项 问题描述 [rootredisxxx]# redis-sentinel ./sentinel.conf 19638:X 01 Nov 2024 16:57:27.180 # WARNING Memory overcommit must be enabled! Without it, background save or replication may fail under low memory condi…...
腾讯云在线扩容数据盘
文章目录 一、查询云硬盘使用的分区形式二、根据不同的云硬盘类型进行在线扩容分区2.1 安装 gdisk 工具。2.2 安装 growpart 工具使用 growpart 工具扩容分区 三、根据不同的云硬盘类型进行在线扩容文件系统3.1 扩容 EXT 文件系统3.2 扩容 XFS 文件系统 一、查询云硬盘使用的分…...
Time Travel Queries|在 RisingWave 中访问历史数据
对于许多组织来说,能够访问历史数据十分关键。以金融交易公司为例: 特定时间点的数据快照与合规审查、审计流程息息相关。企业的关键业务系统也依赖历史数据来恢复故障并重建系统。分析过去事件及其对当前状况的影响,还有助于准确预测并制定…...
Unity之UnityWebRequest
复习UnityWebRequest 介绍下载文件和上传文件下载进度和异常验证文件DownloadHandlerScript 介绍 unity中使用UnityWebRequest来代替所有HTTP请求提供了三种API,UnityWebRequest.Get,UnityWebRequest.Post,UnityWebRequest.Put分别处理GET,POST,PUT请求…...
使用 pkg 打包 Puppeteer 应用:跨平台自动化的轻量级选择
使用 pkg 打包 Puppeteer 应用 pkg 是一个非常强大的工具,它允许你将 Node.js 项目打包成独立的可执行文件,这意味着你可以在没有安装 Node.js 环境的设备上运行该应用。这对于希望分发不暴露源代码的应用程序、创建跨平台的快速演示版本或简化部署流程…...
【Flask】三、Flask 常见项目架构
目录 前言 简单项目结构 中型项目结构 复杂项目结构 前言 Flask是一个轻量级的Web应用框架,它被广泛用于快速开发简单的网站和复杂的大型应用。随着项目规模的增长,合理的项目架构变得尤为重要。这里探讨Flask项目中的三种常见架构&…...
AI机西使用体验:你不知道的强大功能揭秘!
AI机西有人用过吗?用户体验和功能详解 最近我听说了很多关于AI机西的讨论,很多人都在问:这款工具好用吗?有没有人用过?今天我就从我的使用体验出发,给大家分享一下AI机西的功能和我的感受。 1. 绘画功能&a…...
什么是护网(HVV)需要什么技术?(内附护网超全资料包)
文章目录 一、什么是护网行动?二、护网分类三、护网的时间四、护网的影响五、护网的规则六、什么是红队? 6.1、红队测试的意义 七、什么是蓝队 一、什么是护网行动? 护网行动是以公安部牵头的,用以评估企事业单位的网络安全的…...
opencv优秀文章集合
文章目录 一、 CV领域1.1 图像处理1.2 目标检测与识别1.3 图像分割、目标追踪1.4 姿态估计1.5 3D视觉1.6 图像生成1.7 机器视觉1.8 其它 二、 nlp三、语音四、推荐系统 《OpenCV优秀文章集合》《OpenCV系列课程一:图像处理入门(读写、拆分合并、变换、注…...
php处理文件上传的五种方式
dd($_FILES); //方式一 if(!empty($_FILES[file])){ //获取文件后缀方式一 //strrchr()函数查找字符在指定字符串中从右面开始的第一次出现的位置, //如果成功,返回该字符以及其后面的字符…...
C#与C++交互开发系列(十一):委托和函数指针传递
前言 在C#与C的互操作中,委托(delegate)和函数指针的传递是一个复杂但非常强大的功能。这可以实现从C回调C#方法,或者在C#中调用C函数指针的能力。无论是跨语言调用回调函数,还是在多线程、异步任务中使用委托&#x…...
【window】补充一些powershell基本命令
刚才说了一下如何用powershell管理,下边是一些常见的 PowerShell 命令及其参数的示例,补充给大家: 1. 获取帮助 Get-Help:获取命令的帮助信息。 Get-Help Get-Process Get-Help Get-Process -Examples Get-Help Get-Process -Fu…...
精准触达用户,私域三步法!
发现没?现在很多人都开始利用私域来增加潜在的客户,维护现有客户。而在私域管理中,精准触达用户是非常重要的一环。 接下来,就和大家聊聊私域精准触达用户的三个方法,让你可以实现精准营销。 1、数据分析与用户画像构…...
Tcl脚本介绍(一)
芯冰乐知识星球入口:芯冰乐 TCL就是Tool Command Language的简称,广泛应用在各大eda工具中。 EDA工具能够高度自动化的运行得益于TCL。 用户在编写完相关的tcl脚本后,让eda工具自动运行,便能够很大程度地解放双手了。 其实,网络上介绍TCL脚本的课程层出不穷了。应很多粉…...
GraphQL Ruby解析器模式:10个业务逻辑分离与代码复用的终极技巧
GraphQL Ruby解析器模式:10个业务逻辑分离与代码复用的终极技巧 【免费下载链接】graphql-ruby Ruby implementation of GraphQL 项目地址: https://gitcode.com/gh_mirrors/gr/graphql-ruby GraphQL Ruby解析器模式是现代Ruby GraphQL应用开发的核心模式&a…...
Radiant Player与Last.fm集成:如何实现无缝音乐记录
Radiant Player与Last.fm集成:如何实现无缝音乐记录 【免费下载链接】radiant-player-mac :notes: Turn Google Play Music into a separate, beautiful application that integrates with your Mac. 项目地址: https://gitcode.com/gh_mirrors/ra/radiant-player…...
【重磅原创改进代码】基于自适应峰谷感知(APVP)多头注意力(MHA)多任务学习(MTL)的多变量多输出时间序列预测附Python代码
✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…...
OpenClaw成本优化方案:Qwen3.5-9B-AWQ-4bit自部署省下80%Token
OpenClaw成本优化方案:Qwen3.5-9B-AWQ-4bit自部署省下80%Token 1. 为什么需要关注OpenClaw的Token消耗 第一次用OpenClaw完成图片处理任务时,我的信用卡账单给我上了深刻的一课——单月API调用费用直接突破2000元。这个数字让我意识到:如果…...
2026CIOE中国光博会观众报名通道正式开启!光电全产业链盛会蓄势待发
覆盖光电全产业链的综合型展会——第二十七届中国国际光电博览会(CIOE中国光博会)将于2026年9月9-11日在深圳国际会展中心举办。现报名通道已全面开启,即刻登记成功可获取CIOE2025全套会刊!点击阅读原文即刻登记参观!本…...
测试文章标题最终版
测试文章内容这是一篇测试文章...
储能系统海量时序数据边缘侧清洗:基于微服务架构的死区过滤与数据语境化实现
摘要: 针对新能源储能现场底层总线高频轮询(如 50ms 采集间隔)所引发的海量数据洪流,传统的数据全量透传模型不仅会迅速耗尽 4G/5G 流量配额,更会造成云端时序数据库的写入雪崩。本文深度分享一种在具有充沛边缘算力且…...
从情感分析到舆情洞察:手把手教你用Stanford NLP搭建一个简易的评论分析系统
从情感分析到舆情洞察:手把手教你用Stanford NLP搭建评论分析系统 在电商平台或社交媒体上,用户评论是洞察消费者情绪的黄金矿脉。一条简单的"物流超快!"或"包装太差"背后,隐藏着产品改进的关键线索。传统人工…...
Zotero中文文献管理终极解决方案:Jasminum插件完整指南
Zotero中文文献管理终极解决方案:Jasminum插件完整指南 【免费下载链接】jasminum A Zotero add-on to retrive CNKI meta data. 一个简单的Zotero 插件,用于识别中文元数据 项目地址: https://gitcode.com/gh_mirrors/ja/jasminum 你是否曾为中文…...
新手福音:在快马平台上手accelerate,轻松理解分布式训练基础
新手福音:在快马平台上手accelerate,轻松理解分布式训练基础 作为一个刚接触深度学习的新手,分布式训练听起来总是让人望而生畏。各种复杂的配置、环境搭建和代码修改,常常让人在入门阶段就打了退堂鼓。直到我发现了accelerate库…...
