Vue3: readonly与shallowreadonl

目录

一.readonly

1.性质

2.作用

二.shallowReadonly

1.性质

2.作用

三.readonly

四.shallowReadonly

五.运行代码


Vue3中的readonlyshallowReadonly是两个用于创建只读响应式对象的函数。

一.readonly

1.性质

readonly函数会将一个对象或数组包装成一个完全只读的响应式代理对象。这意味着不仅对象的第一层属性无法修改,其所有嵌套层级的属性也同样无法被修改。

2.作用

通过使用readonly,可以确保数据不会被意外修改,这对于需要展示但不能修改的数据非常有用。例如,在投票结果展示中,可以通过readonly来防止用户无意中修改投票数。

二.shallowReadonly

1.性质

shallowReadonly函数创建一个只读的浅层响应式代理对象,它只会对对象的第一层属性进行只读处理,而不会递归处理嵌套的属性。

2.作用

使用shallowReadonly可以在确保顶层数据不可变的同时,允许修改嵌套对象的属性。这在某些场景下可能很有用,比如某个特定层级以下的数据是可变的。

三.readonly

所有属性均无法修改(所有属性均为只读)

四.shallowReadonly

无法修改sum3与Name3.name(顶层属性被设置为只读)

可以修改更深一层的Name3.options.mom(因为只有顶层属性被设置为只读)

五.运行代码

<template><h2>求和为:{{ sum1 }}</h2><h2>名字为: {{ person.name }}</h2><h2>年龄为:{{ person.age }}</h2><button @click="ChangeSum">求和加一</button><button @click="ChangeName">修改名字</button><span></span>
</template><script lang="ts" setup name="App">
import { ref , reactive,readonly, shallowReadonly } from 'vue';let sum1 = ref(0)let person = reactive({name:'小明',age:18,options:{mom:'小张'}})let sum2 = readonly(sum1)let Name2 = readonly(person)let sum3 = shallowReadonly(sum1)let Name3 = shallowReadonly(person)function ChangeSum(){sum2.value += 1}function ChangeName(){Name2.name = '小红'}function ChangeSum3(){sum3.value += 1}function ChangeName3(){Name3.name = '小红'}function ChangeMom3(){Name3.options.mom = '小蓝'}</script><style>
button{width: 150;height: 40;
}</style>

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

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

相关文章

vant Uploader 文件上传 修改上传icon样式

修改前 <van-uploader :after-read"afterRead" :max-count"1" upload-icon"plus"/>.van-icon {font-size: 25px !important;color: #929292; }修改后 完结

ubuntu重新安装clickhouse

1.卸载clickhouse 关闭原来的clickhouse sudo systemctl stop clickhouse-server 查看关闭clickhouse是否成功 sudo systemctl status clickhouse-server 备份配置文件 /etc/clickhouse-server/user.xml /etc/clickhouse-server/config.d/metrika.xml /etc/clickhouse…

探寻舟山自闭症寄宿制学校:为孩子提供独特的教育和培养

在自闭症儿童教育的广阔天地中&#xff0c;寄宿制学校以其独特的教育模式和生活环境&#xff0c;为孩子们提供了前所未有的成长机遇。舟山&#xff0c;这座美丽的海岛城市&#xff0c;也在积极探索自闭症寄宿制学校的建设与发展&#xff0c;致力于为自闭症儿童打造一片专属的成…

简单的算法题

1、求12345 #include <stdio.h> int main(){int i,s1;for(i1;i<5;i){s s*i;}printf("%d",s); }2、求1357911 #include <stdio.h> int main(){int i,s1;for(i1;i<11;ii2){s s*i;}printf("%d",s); }3、判定2000—2500年中的每一年是否…

虚拟电厂:智慧编织电动汽车新能源管控

一、为什么要搭建虚拟电厂 在当今绿色低碳转型的浪潮中&#xff0c;电动汽车作为未来出行的主力军&#xff0c;其充电行为却悄然成为影响电网安全与经济效益的关键因素。传统模式下&#xff0c;电动汽车的随机充电行为如同电网中的“不速之客”&#xff0c;频繁冲击电网稳定&a…

Leecode刷题之路从今天开始

前言 众所周知&#xff0c;数据结构算法程序。算法对程序的重要性不言而喻。我们后端研发在写业务代码的时候很容易忽略算法&#xff0c;因此为了加强算法功底&#xff0c;从今日起&#xff0c;决定每日记录Leecode刷题记录&#xff0c;每道题都有相关的demo代码和文档&#x…

从事新闻、出版、教育、药品和医疗器械、文化、广播电影电视节目等互联网信息服务小程序备案说明

根据《互联网信息服务管理办法》、《非经营性互联网信息服务备案管理办法》规定&#xff0c;从事新闻、出版、教育、药品和医疗器械、文化、广播电影电视节目等互联网信息服务&#xff0c;依照法律、行政法规以及国家有关规定须经有关主管部门审核同意的&#xff0c;在履行备案…

【资源一号02C卫星】

资源一号02C卫星 资源一号02C卫星是中国航天科技集团公司所属中国空间技术研究院负责研制生产的一颗重要遥感卫星。以下是关于该卫星的详细介绍&#xff1a; 一、基本信息 发射时间&#xff1a;2011年12月22日11时26分发射地点&#xff1a;中国太原卫星发射中心运载火箭&am…

物联网实践教程:微信小程序结合OneNET平台MQTT实现STM32单片机远程智能控制 远程上报和接收数据——ESP8266/01s模块烧录AT固件篇

物联网实践教程&#xff1a;微信小程序结合OneNET平台MQTT实现STM32单片机远程智能控制 远程上报和接收数据总览 地址&#xff1a; 乐鑫ESP8266/安信可 ESP-01sWiFi模块 烧录MQTT AT固件 固件烧录介绍 烧录最新的MQTT AT固件到ESP8266-01s模块的原因是&#xff0c;这一固件版…

Android线程使用总结

Android线程使用总结 1. Threading Performance 在程序开发的实践当中&#xff0c;为了让程序表现得更加流畅&#xff0c;我们肯定会需要使用到多线程来提升程序的并发执行性能。但是编写多线程并发的代码一直以来都是一个相对棘手的问题&#xff0c;所以想要获得更佳的程序性…

Linux系统CentOS下挂载磁盘

1. 挂载磁盘步骤总结如下 1. 对磁盘进行分区 2. 对磁盘进行格式化 3. 将磁盘挂载到对应目录 4. 设置开机自动挂载磁盘 2. 对磁盘进行分区 2.1 查看系统设备信息 lsblk指令显示所有块设备信息&#xff1a;显示系统中所有的块设备信息&#xff0c;包括磁盘和分区 lsblk 2…

学习制作第一个LC带通滤波器的初步认识与总结

作为业余爱好&#xff0c;之前没有接触过射频方面的知识。 收音机&#xff0c;fm调频话筒等等想必是很多人都想制作的一个入门制作。但是这个里面的振荡&#xff0c;谐振&#xff0c;滤波&#xff0c;虽然在电子报上面频频看见&#xff0c;对于普通爱好者&#xff0c;如果没有…

设计模式 策略模式(Strategy Pattern)

策略模式简绍 策略模式&#xff08;Strategy Pattern&#xff09;是一种行为设计模式&#xff0c;它使你能在运行时改变对象的行为。该模式定义了一系列的算法&#xff0c;并将每一个算法封装起来&#xff0c;使它们可以相互替换。策略模式让算法独立于使用它的客户而变化。 …

腾讯邮箱上传附件卡、慢、无法上传问题处理

1、检查文件中转站容量是否已满 2、建议用户打开链接https://exmail.qq.com/qy_mng_logic/wasmHelper?typehashv2&#xff0c;看是否可以正常访问。&#xff08;能打开下载就表示可以正常访问&#xff09; 3、让用户切换到4G或者其他网络再重新上传附件是否会重现问题&#xf…

浅析Android中的View事件分发机制

Android事件分发机制浅析 基础概念源码分析事件分发流程事件处理流程 思路借鉴 基础概念 触摸事件&#xff1a;手指触摸屏幕时生成的事件&#xff0c;即MotionEvent。常见的触摸事件有&#xff1a;ACTION_DOWN、ACTION_MOVE、ACTION_UP以及ACTION_CANCEL&#xff0c;当存在多个…

基于jsonpath_ng的JSON数据查改增删

jsonpath_ng支持JSON数据的读写操作。 安装 pip install jsonpath-ng测试数据 from jsonpath_ng import parse import jsonjson_data { "store": {"book": [ { "category": "reference","author": "Nigel Rees&qu…

阴影的基本原理

1、现实中阴影的产生规则 如图所示&#xff0c;现实中的阴影产生规则是&#xff0c;在不考虑光线反射的前提下&#xff0c;当一个光源发射的一条光线遇到一个不透明物体A时&#xff0c;这条光线就不能够再继续照亮其他物体了&#xff08;物体B的一部分&#xff09;&#xff0c…

VmWare安装虚拟机保姆级教程(centos7,虚拟机网络设置,虚拟机桌面显示)

VMWare下载&#xff1a; 下载 VMware Workstation Pro - VMware Customer Connect 安装包&#xff1a;&#xff08;16的版本&#xff09;免费&#xff01;&#xff08;一个赞就行&#xff09; 一直点下一步即可&#xff0c;注意修改一下安装位置就好 二、安装虚拟机 安装虚…

基类和派生类的赋值对象转换、派生类与基类成员的函数隐藏、派生类中的默认成员函数、继承与友元、继承与静态成员函数、菱形继承、菱形虚拟继承等的介绍

文章目录 前言一、基类和派生类的赋值对象转换二、派生类与基类成员的函数隐藏三、派生类中的默认成员函数四、继承与友元五、 继承与静态成员函数六、菱形继承七、菱形虚拟继承总结 前言 基类和派生类的赋值对象转换、派生类与基类成员的函数隐藏、派生类中的默认成员函数、继…

基于 Canvas 的可缩放拖动网格示例(Vue3以及TypeScript )

文章目录 1. 基本知识2. Vue33. TypeScript 1. 基本知识 基本知识讲解&#xff1a; Canvas API&#xff1a; 一种用于在网页上绘制图形的 HTML 元素&#xff0c;使用 JavaScript 的 Canvas API 来进行绘制 使用 getContext(2d) 方法获取 2D 绘图上下文&#xff0c;允许开发者绘…