vue3引用类型和基础类型深度克隆

这篇具有很好参考价值的文章主要介绍了vue3引用类型和基础类型深度克隆。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

深度克隆失效的一个例子

import { cloneDeep } from "lodash";
import { ref } from "vue";

const navArr = ref([
    "recommend",
    "hot",
    "new",
])
const list1: any = ref([])
const list2: any = ref([])
const list3: any = ref([])

for (let index = 0; index < navArr.value.length; index++) {
    const ele = navArr.value[index];
    list1.value[ele] = {
        list: [],
        currentIndex: 0,
        pageObj: {
            navActive: ele,
            page: 1,
            size: 4,
        }
    }
}

console.log("list1", list1.value);

list2.value = cloneDeep(list1.value)

console.log("list2", list2.value);

list3.value = JSON.parse(JSON.stringify(list1.value))

console.log("list3", list3.value);

vue3引用类型和基础类型深度克隆,vue,vue.js,javascript,前端,js深度克隆

原因是list1和list2初始值用中括号[],但是navArr遍历的时候是对象的方式赋值,
虽然不影响list1赋值,但是类型错了,导致深度克隆会失败,
改成 花括号 对象方式初始值

修改后

vue3引用类型和基础类型深度克隆,vue,vue.js,javascript,前端,js深度克隆文章来源地址https://www.toymoban.com/news/detail-781008.html

到了这里,关于vue3引用类型和基础类型深度克隆的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • JavaScript中的数据类型可以分为两类:原始类型和引用类型。

    JavaScript中的数据类型可以分为两类:原始类型和引用类型。 JavaScript中的原始类型有五种,分别是: 数字(Number):表示数字,包括整数和浮点数。 字符串(String):表示文本字符串。 布尔值(Boolean):表示逻辑上的真或假。 undefined:表示未定义的值。 null:表示空值。

    2024年01月24日
    浏览(37)
  • vue3创建项目报错Vue.js - The Progressive JavaScript Framework TypeError: (0 , import_node_ut

    报错信息: Vue.js - The Progressive JavaScript Framework TypeError: (0 , import_node_util.parseArgs) is not a function     at init (C:UsersAdministratorAppDataLocalnpm-cache_npx2f7e7bff16d1c534node_modulescreate-vueoutfile.cjs:4481:72)     at Object.anonymous (C:UsersAdministratorAppDataLocalnpm-cache_npx2f7e7bff16d1c534node_module

    2024年04月10日
    浏览(117)
  • JavaScript之深度克隆、多种实现方式、列举各种方式的优缺点、对象自有属性、拷贝、复制

    在 JavaScript 中,对象和数组是引用类型,当将一个对象或数组赋值给另一个变量时,它们实际上是共享同一块内存空间。这意味着对一个对象或数组的修改会影响到所有引用它的变量。 为了创建一个独立的副本,可以使用深克隆。 JSON.stringify() 方法将 JavaScript 对象转换为一个

    2024年02月02日
    浏览(34)
  • vue3-模版引用

    ref 属性 场景:需要直接访问底层 DOM 元素。 方法:使用特殊的 ref 属性。 ref 属性 允许我们在一个特定的 DOM 元素或子组件实例被挂载后,获得对它的直接引用。 访问模板引用 小 Demo: 当 input 组件挂载后 自动获取焦点 注意:只有 组件挂载后 才能访问模版引用。初次渲染时

    2024年01月21日
    浏览(26)
  • vue3组件引用使用的坑

    今天准备用el-tabs写个页面,发现点击后组件怎么都显示不了,后来才发现是组件引用的原因  这是页面是显示的效果:  乍一看确实是对的。。。 但是当我点击完这三个tab后再重新点击道路管理后,有意思的出现了:  one组件消失不见了,不仅如此,另外两个组件也不显示

    2024年02月16日
    浏览(27)
  • 【JavaScript】JS——Map数据类型

    存储键值对的对象。 能够记住键的原始插入顺序 任何值(对象或原始值)都可以作为键或值。 Map中的一个键 只能出现一次 ,新的值会覆盖旧的值。 迭代方式:for…of循环,返回一个 [key,value] 的数组。 键的相等:基于零值相等比较 Map与Object的比较 Map默认不包含任何键。

    2024年02月04日
    浏览(41)
  • Java基础知识——类、静态、继承、引用类型使用

    类的定义格式如下: 例如: 例如: 1.3.1 封装的步骤 1.使用 private 来修饰成员变量。 2.使用 public 修饰getter和setter方法。 1.3.2 封装的步骤实现 private修饰成员变量 public修饰getter和setter方法 1.4.1 构造器的作用 通过调用构造器可以返回一个类的对象,构造器同时负责帮我们把

    2023年04月19日
    浏览(35)
  • vue3 组件自己引用自己 递归组件 组件命名

    本人前端开发一枚,以前一直用vue2.0,为了更新自己掌握的技术学习如何使用vue3.0。 在vue3.0项目中想要实现菜单组件,要使用到递归组件的方法,发现不知道怎么给组件重命名!! 在vue2.0中想要实现递归组件方式很简单,只要给组件命名,然后自己调用即可: 然而在vue3.0中

    2024年02月06日
    浏览(40)
  • Python中的弱引用与基础类型支持情况探究

    最近有一个业务场景需要用Python自行实现一个简单的LRU cache,不可避免的接触到了弱引用这一概念,这里记录一下。 Python内存回收由垃圾回收器自动管理,当一个对象的引用计数归0时,其内存就可能被回收掉,而引用计数器的数值其实就是代表有多少个强引用指向该对象,

    2024年02月16日
    浏览(29)
  • Vue3,Typescript中引用组件路径无法找到模块报错

    是这么个事,我在vue3新创建的项目里,写了个组件叫headerIndex.vue,放到app.vue中import就会报错 路径肯定没写错,找到了解决方法,但是也没想明白为什么 解决方法如下 在vite-env.d.ts文件中加入 就好了,大概意思就是在文件中把组件声明一下,but why

    2024年02月09日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包