广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >关于vue3中的reactive赋值问题
  • 449
分享到

关于vue3中的reactive赋值问题

2024-04-02 19:04:59 449人浏览 泡泡鱼
摘要

目录vue3 Reactive赋值问题Vue3 reactive的坑清空数组清空对象vue3 reactive赋值问题 vue3中直接对reactive整个对象赋值检测不到 let

vue3 reactive赋值问题

vue3中直接对reactive整个对象赋值检测不到

let obj = reactive({
	name: 'zhangsan',
	age: '18'
})
obj = {
	name: 'lisi'
	age: ''
}
// 上面这样赋值检测不到,因为响应式的是它的属性,而不是它自身
			
// 如需要对 reactive 赋值
// 方法1: 单个赋值
obj['name'] = 'lisi';
obj['age'] = '';
// 方法2:多包一层
let obj = reactive({
	data: {
		name: 'zhangsan',
		age: '18'
	}
})
obj.data = {
	name: 'lisi'
	age: ''
}

vue3 reactive的坑

最近使用vue3的过程中发现reactive有一些问题

清空reactive定义的数组时必须将length设为0,直接赋值一个空数组是没有作用的,同理对象直接赋值一个空对象也没有作用,只能遍历对象一项一项删,这里说的没有作用是不能响应式的更新页面,如果打印一下是能看到确实被删除了,但是页面没有变化

清空数组

// 错误示例
<template>
  <div>{{ arr }}</div>
  <button @click="click">点击</button>
</template>
 
<script setup>
import { reactive } from 'vue'
let arr = reactive([1, 2, 3])
const click = () => {
  arr = []
  console.log(arr) // 这里打印的结果是正常的空数组
}
</script>
// 正确示例
<template>
  <div>{{ arr }}</div>
  <button @click="click">点击</button>
</template>
 
<script setup>
import { reactive } from 'vue'
let arr = reactive([1, 2, 3])
const click = () => {
  arr.length = 0 // 这里和vue2是正好相反,vue2直接将数组length设为0是无效的
  console.log(arr)
}
</script>

清空对象

// 错误示例
<template>
  <div>{{ obj }}</div>
  <button @click="click">点击</button>
</template>
 
<script setup>
import { reactive } from 'vue'
let obj = reactive({a: 111, b: 222})
const click = () => {
  obj = {}
  console.log(obj) // 这里打印的结果是正常的空对象
}
</script>
// 错误示例
<template>
  <div>
    <div>{{ obj }}</div>
    <button @click="click">点击</button>
  </div>
</template>
 
<script setup>
import { reactive } from 'vue'
let arr = reactive({a: xxx, b: xxx })
const click = () => {
  for (let i in obj) {
    delete obj[i]
  }
  console.log(obj) // 这里打印的结果是正常的空数组
}
</script>

同样的道理直接赋值也不行,数组只能用数组的某些方法,或者直接修改索引,修改索引跟vue2又是相反,vue2只修改索引项没有作用,对象直接使用点语法即可,直接赋一个对象没有作用

这些问题其实只要使用ref就可以解决,但是人官方推荐使用reactive。。。。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: 关于vue3中的reactive赋值问题

本文链接: https://www.lsjlt.com/news/149639.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 关于vue3中的reactive赋值问题
    目录vue3 reactive赋值问题vue3 reactive的坑清空数组清空对象vue3 reactive赋值问题 vue3中直接对reactive整个对象赋值检测不到 let ...
    99+
    2022-11-13
  • Vue3中关于ref和reactive的问题
    目录关于ref和reactive的问题简单了解 ref & reactivevue3 ref 和reactive的区别总结关于ref和reactive的问题 如果你使用过 V...
    99+
    2023-05-16
    Vue3中ref Vue3中reactive 关于ref和reactive
  • vue3使用reactive包裹数组正确赋值问题
    目录使用reactive包裹数组正确赋值提供几种办法vue3的reactive重新赋值无效vue3官方的文档说明总结使用reactive包裹数组正确赋值 需求:将接口请求到的列表数据...
    99+
    2023-03-06
    vue3 reactive vue3 reactive赋值 vue3 reactive 赋值
  • vue3 关于reactive的重置问题及解决
    目录关于reactive的重置问题理解vue3中的reactive1.什么是reactive2.reactive注意点关于reactive的重置问题 在vue3的reactive的使...
    99+
    2022-11-13
  • vue3中reactive不能直接赋值的解决方案
    目录vue3 reactive不能直接赋值方法vue3 reactive赋值不响应(1)多嵌套一层(2)使用ref(3)用obeject.assignvue3 reactive不能直...
    99+
    2022-11-13
  • 关于Java反射给泛型集合赋值问题
    泛型 Java泛型简单描述下: 比如创建一个List集合,我想在里边只放Student对象信息,就需要写成 List<Student> studentList = new...
    99+
    2022-11-12
  • vue中的传值及赋值问题
    目录vue的传值及赋值先看一下场景解决方法vue的赋值小技巧严谨代码undefined判断vue的传值及赋值 作为Vue非资深的学习者,在工作中使用vue的时候还是遇见的很多所谓的坑...
    99+
    2022-11-13
  • vue3中reactive数据被重新赋值后无法双向绑定的解决
    目录reactive数据被重新赋值后无法双向绑定推荐写法vue3数据的双向绑定一、script setup二、ref() 函数三、reactive()函数reactive数据被重新赋...
    99+
    2022-11-13
  • MySQL中关于null值的一个小问题
        今天在测试null值的时候,发现了一个小问题,记录在这里,不知道大家以前遇到过没。     事情发展是这样的,在过滤一个表中的数值的时候,需要把age=2的列...
    99+
    2022-05-29
    MySQL null值 MySQL null值的问题
  • vue3解构赋值失去响应式引发的问题思考
    目录前言原始值的响应式系统的实现为什么ES6 解构,不能随意使用会破坏他的响应式特性proxy背景实现原理解构 props 对象,因为它会失去响应式直接赋值rea...
    99+
    2022-11-13
  • 关于vue3使用particles粒子特效的问题
    目录第一步:引入 particles.js第二步:找到 node_modules 内的 particles.js第三步:项目 components 下创建 particles 目录第...
    99+
    2022-11-13
  • 关于vue3编写挂载DOM的插件问题
    vue3 跟 vue2 相比,多了一个 app 的概念,vue3 项目的创建也变成了 // main.js import { createApp } from 'vue' imp...
    99+
    2022-11-12
  • vue中的传值及赋值问题怎么解决
    这篇文章主要介绍“vue中的传值及赋值问题怎么解决”,在日常操作中,相信很多人在vue中的传值及赋值问题怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vue中的传值及赋值问题怎么解决”的疑惑有所帮助!...
    99+
    2023-06-30
  • layui中树形关于取值传值问题的示例分析
    这篇文章主要介绍了layui中树形关于取值传值问题的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。具体如下:这个是我们需要的效果,实...
    99+
    2022-10-19
  • vue3结构赋值失去响应式引发的问题怎么解决
    这篇文章主要介绍“vue3结构赋值失去响应式引发的问题怎么解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“vue3结构赋值失去响应式引发的问题怎么解决”文章能帮助大家解决问题。原始值的响应式系统的...
    99+
    2023-07-02
  • 关于mybatis resulttype 返回值异常的问题
    目录mybatisresulttype返回值异常例如:resulttype="student"但是当中有些字段为空例如:数据库字段为:s_name实体类字段为namemybatisresultType="map"的常见问题一、map的key...
    99+
    2015-02-25
    mybatis resulttype 返回值异常 resulttype返回值
  • 关于Python列表的索引取值问题
    本篇文章给大家带来了关于Python的相关知识,其中主要介绍了Python 列表的索引取值,本节重点掌握多次索引取值的语法:列表[索引][索引],结合示例代码给大家介绍的非常详细,下面一起来看一下,希望对大家有帮助。php零基础到就业直播视...
    99+
    2022-09-13
  • 关于Python中对变量赋值过程的理解
    目录Python中变量赋值过程理解总结:Python中变量赋值过程理解 在Python中对变量赋值过程的理解,有助于学习者对Python的变量和所指向的对象之间的指向关系深刻理解,避...
    99+
    2023-05-19
    Python变量赋值过程 Python变量赋值
  • 关于vue3vuex4store的响应式取值问题解决
    场景: 在页面中点击按钮,数量增加,值是存在store中的,点击事件,值没变。 <script setup lang="ts"> import { useStore } ...
    99+
    2022-11-13
  • 深入理解Python中变量赋值的问题
    前言 在Python中变量名规则与其他大多数高级语言一样,都是受C语言影响的,另外变量名是大小写敏感的。 Python是动态类型语言,也就是说不需要预先声明变量类型,变量的类型和值在赋值那一刻被初始化,下面...
    99+
    2022-06-04
    赋值 变量 Python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作