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

vue2转vue3一些属性使用方法总结 (持续更新中)

1.vue3中不再需要用this.$set 方法

在 Vue 3 中,this. s e t 方法不再存在,因为 V u e 3 使用了 P r o x y 来实现其响应式系统,使得对象的属性访问和修改都能够被自动追踪。因此,在 V u e 3 中,你通常不需要使用特殊的方法来添加响应式属性。在 V u e 2 中,你可能会使用 t h i s . set 方法不再存在,因为 Vue 3 使用了 Proxy 来实现其响应式系统,使得对象的属性访问和修改都能够被自动追踪。因此,在 Vue 3 中,你通常不需要使用特殊的方法来添加响应式属性。 在 Vue 2 中,你可能会使用 this. set方法不再存在,因为Vue3使用了Proxy来实现其响应式系统,使得对象的属性访问和修改都能够被自动追踪。因此,在Vue3中,你通常不需要使用特殊的方法来添加响应式属性。在Vue2中,你可能会使用this.set 来确保向一个已经创建的数组或对象添加的新属性是响应式的。但在 Vue 3 中,当你使用
ref 或 reactive 创建的响应式对象或数组时,任何新添加的属性默认都是响应式的。

2.vue3定义数组 并接口赋值

定义数组 并赋值
const items = ref([]);
const myObject = reactive({});const response = await axios.get('your-api-endpoint');
items.value = response.data; // 假设接口返回的是数组格式数据

3.watch侦听对象中的具体属性

watch 的基本用法

watch() 默认是懒侦听的,即仅在侦听源发生变化时才执行回调函数

第一个参数:侦听源,侦听源可以是一下几种

一个函数,返回一个值一个 ref一个响应式对象(reactive)或是由以上类型的值组成的数组
第二个参数:侦听源发生变化时要触发的回调函数。

​ (newValue, oldValue) => { /* code */}

​ 当侦听多个来源时,回调函数接受两个数组,分别对应源数组中的新值和旧值

​ ( [ newValue1, newValue2 ] , [ oldValue1 , oldValue2 ]) => {/* code
*/}

第三个参数:可选对象,可以支持一下这些选项

immediate:侦听器创建时立即触发回调
deep:如果源是一个对象,会强制深度遍历,以便在深层级发生变化时触发回调函数
flush:调整回调函数的刷新时机onTrack / onTrigger:调试侦听器的依赖

const obj = reactive({ count: 0 })
// 错误,因为 watch() 中的侦听源是一个 number,最终 source 返回的 getter 函数是一个空,所以就得不到侦听的数据
watch(obj.count, (count) => {console.log(`count is: ${count}`)
})
// 正确,主要思想是,将侦听源转化为以上4种类型(转化为getter函数是最简单方便的)
watch(() => obj.count,(count) => {console.log(`count is: ${count}`)},{immediate: true, // 立即执行回调deep: true,      // 深度观察flush: 'pre'     // 在DOM更新之前调用回调} //第三个参数的使用方法
)

4.过滤方法
const statusFilter = (status: number) => {
const filter: any = { 0: ‘danger’, 1: ‘success’, 50: ‘danger’ }
return filter[status]
}

5.vue2中this.$nextTick() 方法在vue3中使用如下:

import  {nextTick} from 'vue'
nextTick(()=>{
// 这个回调将在 DOM 更新后执行
})
  1. vue3中使用的 v-bind=‘$attrs’ 踩坑

在 Vue 3 中,v-bind=“$attrs” 的用法与 Vue 2 中相同,它用于将父组件中未被子组件识别(即未定义为
props)的属性绑定到子组件的根元素上。这样做可以确保父组件传递的额外属性(如 class、style 等)能够被应用到子组件上。
$attrs是一个对象,包含了父组件中不被认为是props的属性,这些属性可以是事件监听器(v-on),或者其他的DOM attribute。

注意1,inheritAttrs: false 的使用是可选的,

这取决于你是否希望 $attrs 自动绑定到子组件的根元素上。如果你希望手动控制这些属性的绑定,你可以设置 inheritAttrs 为 false,并在 setup 函数中返回你想要绑定的属性。
如果你不使用 inheritAttrs: false,则 a t t r s 会自动绑定到子组件的根元素上,你不需要在模板中显式地使用 v − b i n d = " attrs 会自动绑定到子组件的根元素上,你不需要在模板中显式地使用 v-bind=" attrs会自动绑定到子组件的根元素上,你不需要在模板中显式地使用vbind="attrs"。
如果你需要处理 $attrs 中的类名和样式,你可能需要手动合并它们,因为 Vue 不会自动合并这些属性。这通常可以通过使用工具函数如 classNames 或 mergeStyles 来实现。

注意2, 在vue3中 我们经常定义对象的类型时,会有继承类型的使用

 如: interface ProTableProps extends Partial<Omit<TableProps<any>, 'data'>>{  //****此处省略}//ProTableProps继承extends Partial<Omit<TableProps<any>, 'data'>>后,v-bind=$attrs穿透不生效了 ,所以去掉继承会继续生效

相关文章:

  • MySql并发事务问题
  • winform datagridView 一次删除20000条数据
  • SpringBoot快速入门笔记(5)
  • GPT提示词分享 —— 中医
  • mysql中表的设计
  • 帝国CMS模板源码整站安装说明(图文)
  • APIFY集成客服系统:提升用户运营效率
  • 技术 SEO 初学者指南
  • hadoop:案例:将顾客在京东、淘宝、多点三家平台的消费金额汇总,然后先按京东消费额排序,再按淘宝消费额排序
  • 详解 Redis 在 Centos 系统上的安装
  • STM32为什么不能跑Linux?
  • Linux、Docker、Brew、Nginx常用命令
  • 高新技术企业上市要达到什么条件
  • Linux入门攻坚——18、SELinux、Bash脚本编程续
  • hive-分桶-索引(初篇)
  • DataBase in Android
  • download使用浅析
  • happypack两次报错的问题
  • HTTP 简介
  • java架构面试锦集:开源框架+并发+数据结构+大企必备面试题
  • JDK9: 集成 Jshell 和 Maven 项目.
  • js中forEach回调同异步问题
  • windows-nginx-https-本地配置
  • 海量大数据大屏分析展示一步到位:DataWorks数据服务+MaxCompute Lightning对接DataV最佳实践...
  • 记一次和乔布斯合作最难忘的经历
  • 跨域
  • 前端路由实现-history
  • 微服务框架lagom
  • 在electron中实现跨域请求,无需更改服务器端设置
  • No resource identifier found for attribute,RxJava之zip操作符
  • (delphi11最新学习资料) Object Pascal 学习笔记---第7章第3节(封装和窗体)
  • (论文阅读11/100)Fast R-CNN
  • (每日持续更新)jdk api之StringBufferInputStream基础、应用、实战
  • (深度全面解析)ChatGPT的重大更新给创业者带来了哪些红利机会
  • (万字长文)Spring的核心知识尽揽其中
  • (转)人的集合论——移山之道
  • (最优化理论与方法)第二章最优化所需基础知识-第三节:重要凸集举例
  • *** 2003
  • ***测试-HTTP方法
  • **PyTorch月学习计划 - 第一周;第6-7天: 自动梯度(Autograd)**
  • .net core webapi 大文件上传到wwwroot文件夹
  • .NET Core工程编译事件$(TargetDir)变量为空引发的思考
  • .NET Framework 4.6.2改进了WPF和安全性
  • .net framework profiles /.net framework 配置
  • .net refrector
  • .net Stream篇(六)
  • .NET/C# 项目如何优雅地设置条件编译符号?
  • .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间)...
  • .netcore 获取appsettings
  • .net反编译工具
  • .NET性能优化(文摘)
  • @Transient注解
  • [AIGC] SQL中的数据添加和操作:数据类型介绍
  • [Angularjs]ng-select和ng-options
  • [Arduino学习] ESP8266读取DHT11数字温湿度传感器数据