当前位置: 首页 > news >正文

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函数&#xff0c;所有组合式API函数都是在此函数中调用的&#xff0c;它是组合式API的使用入口…...

001-Kotlin界面开发之Jetpack Compose Desktop学习路径

Compose Desktop学习之路 学习过程 理解Kotlin的基本语法 Compose Desktop采用Kotlin构建&#xff0c;因此对Kotlin的基本语法有很好的理解是必不可少的。你可以从官方的Kotlin文档开始。 用一句话概括&#xff0c;Kotlin是一种现代的、静态类型的编程语言&#xff0c;它结合…...

qt QStackedLayout详解

QStackedLayout类提供了一种布局方式&#xff0c;使得在同一时间内只有一个子部件&#xff08;或称为页面&#xff09;是可见的。这些子部件被维护在一个堆栈中&#xff0c;用户可以通过切换来显示不同的子部件&#xff0c;适合用在需要动态显示不同界面的场景&#xff0c;如向…...

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(基本)防火墙应用案例-工控防火墙部署 防火墙安全功能指标 我们防火墙也会提供各种各样的互联接口&#xff0c;它这种接口有以太网、快速以太网、千兆以太网&am…...

docker engine stopped

1&#xff09;环境&#xff1a;win 10 2&#xff09;docker安装时已经已经安装了虚拟机 3&#xff09;启用网络适配器 4&#xff09;启用docker服务&#xff08;依赖服务LanmanServer&#xff09; 5&#xff09;全都弄好了&#xff0c;docker还是打不开&#xff0c;没办法了&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 中访问历史数据

对于许多组织来说&#xff0c;能够访问历史数据十分关键。以金融交易公司为例&#xff1a; 特定时间点的数据快照与合规审查、审计流程息息相关。企业的关键业务系统也依赖历史数据来恢复故障并重建系统。分析过去事件及其对当前状况的影响&#xff0c;还有助于准确预测并制定…...

Unity之UnityWebRequest

复习UnityWebRequest 介绍下载文件和上传文件下载进度和异常验证文件DownloadHandlerScript 介绍 unity中使用UnityWebRequest来代替所有HTTP请求提供了三种API,UnityWebRequest.Get&#xff0c;UnityWebRequest.Post&#xff0c;UnityWebRequest.Put分别处理GET,POST,PUT请求…...

使用 pkg 打包 Puppeteer 应用:跨平台自动化的轻量级选择

使用 pkg 打包 Puppeteer 应用 pkg 是一个非常强大的工具&#xff0c;它允许你将 Node.js 项目打包成独立的可执行文件&#xff0c;这意味着你可以在没有安装 Node.js 环境的设备上运行该应用。这对于希望分发不暴露源代码的应用程序、创建跨平台的快速演示版本或简化部署流程…...

【Flask】三、Flask 常见项目架构

目录 前言 简单项目结构 中型项目结构 复杂项目结构 前言 Flask是一个轻量级的Web应用框架&#xff0c;它被广泛用于快速开发简单的网站和复杂的大型应用。随着项目规模的增长&#xff0c;合理的项目架构变得尤为重要。这里探讨Flask项目中的三种常见架构&…...

AI机西使用体验:你不知道的强大功能揭秘!

AI机西有人用过吗&#xff1f;用户体验和功能详解 最近我听说了很多关于AI机西的讨论&#xff0c;很多人都在问&#xff1a;这款工具好用吗&#xff1f;有没有人用过&#xff1f;今天我就从我的使用体验出发&#xff0c;给大家分享一下AI机西的功能和我的感受。 1. 绘画功能&a…...

什么是护网(HVV)需要什么技术?(内附护网超全资料包)

文章目录 一、什么是护网行动&#xff1f;二、护网分类三、护网的时间四、护网的影响五、护网的规则六、什么是红队&#xff1f; 6.1、红队测试的意义 七、什么是蓝队 一、什么是护网行动&#xff1f; 护网行动是以公安部牵头的&#xff0c;用以评估企事业单位的网络安全的…...

opencv优秀文章集合

文章目录 一、 CV领域1.1 图像处理1.2 目标检测与识别1.3 图像分割、目标追踪1.4 姿态估计1.5 3D视觉1.6 图像生成1.7 机器视觉1.8 其它 二、 nlp三、语音四、推荐系统 《OpenCV优秀文章集合》《OpenCV系列课程一&#xff1a;图像处理入门&#xff08;读写、拆分合并、变换、注…...

php处理文件上传的五种方式

dd($_FILES); //方式一 if(!empty($_FILES[file])){ //获取文件后缀方式一 //strrchr()函数查找字符在指定字符串中从右面开始的第一次出现的位置&#xff0c; //如果成功&#xff0c;返回该字符以及其后面的字符&#xf…...

C#与C++交互开发系列(十一):委托和函数指针传递

前言 在C#与C的互操作中&#xff0c;委托&#xff08;delegate&#xff09;和函数指针的传递是一个复杂但非常强大的功能。这可以实现从C回调C#方法&#xff0c;或者在C#中调用C函数指针的能力。无论是跨语言调用回调函数&#xff0c;还是在多线程、异步任务中使用委托&#x…...

【window】补充一些powershell基本命令

刚才说了一下如何用powershell管理&#xff0c;下边是一些常见的 PowerShell 命令及其参数的示例&#xff0c;补充给大家&#xff1a; 1. 获取帮助 Get-Help&#xff1a;获取命令的帮助信息。 Get-Help Get-Process Get-Help Get-Process -Examples Get-Help Get-Process -Fu…...

精准触达用户,私域三步法!

发现没&#xff1f;现在很多人都开始利用私域来增加潜在的客户&#xff0c;维护现有客户。而在私域管理中&#xff0c;精准触达用户是非常重要的一环。 接下来&#xff0c;就和大家聊聊私域精准触达用户的三个方法&#xff0c;让你可以实现精准营销。 1、数据分析与用户画像构…...

Tcl脚本介绍(一)

芯冰乐知识星球入口:芯冰乐 TCL就是Tool Command Language的简称,广泛应用在各大eda工具中。 EDA工具能够高度自动化的运行得益于TCL。 用户在编写完相关的tcl脚本后,让eda工具自动运行,便能够很大程度地解放双手了。 其实,网络上介绍TCL脚本的课程层出不穷了。应很多粉…...

STM32F4基本定时器使用和原理详解

STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...

Neo4j 集群管理:原理、技术与最佳实践深度解析

Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...

零基础设计模式——行为型模式 - 责任链模式

第四部分&#xff1a;行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习&#xff01;行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想&#xff1a;使多个对象都有机会处…...

重启Eureka集群中的节点,对已经注册的服务有什么影响

先看答案&#xff0c;如果正确地操作&#xff0c;重启Eureka集群中的节点&#xff0c;对已经注册的服务影响非常小&#xff0c;甚至可以做到无感知。 但如果操作不当&#xff0c;可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...

Reasoning over Uncertain Text by Generative Large Language Models

https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...

高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数

高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...

动态 Web 开发技术入门篇

一、HTTP 协议核心 1.1 HTTP 基础 协议全称 &#xff1a;HyperText Transfer Protocol&#xff08;超文本传输协议&#xff09; 默认端口 &#xff1a;HTTP 使用 80 端口&#xff0c;HTTPS 使用 443 端口。 请求方法 &#xff1a; GET &#xff1a;用于获取资源&#xff0c;…...

快刀集(1): 一刀斩断视频片头广告

一刀流&#xff1a;用一个简单脚本&#xff0c;秒杀视频片头广告&#xff0c;还你清爽观影体验。 1. 引子 作为一个爱生活、爱学习、爱收藏高清资源的老码农&#xff0c;平时写代码之余看看电影、补补片&#xff0c;是再正常不过的事。 电影嘛&#xff0c;要沉浸&#xff0c;…...

【前端异常】JavaScript错误处理:分析 Uncaught (in promise) error

在前端开发中&#xff0c;JavaScript 异常是不可避免的。随着现代前端应用越来越多地使用异步操作&#xff08;如 Promise、async/await 等&#xff09;&#xff0c;开发者常常会遇到 Uncaught (in promise) error 错误。这个错误是由于未正确处理 Promise 的拒绝&#xff08;r…...

如何配置一个sql server使得其它用户可以通过excel odbc获取数据

要让其他用户通过 Excel 使用 ODBC 连接到 SQL Server 获取数据&#xff0c;你需要完成以下配置步骤&#xff1a; ✅ 一、在 SQL Server 端配置&#xff08;服务器设置&#xff09; 1. 启用 TCP/IP 协议 打开 “SQL Server 配置管理器”。导航到&#xff1a;SQL Server 网络配…...