首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在Vuejs3中深度克隆导入的属性

在Vuejs3中深度克隆导入的属性
EN

Stack Overflow用户
提问于 2022-02-11 07:39:54
回答 1查看 532关注 0票数 2

我已经执行了如下所示的命令,它存储在单独的文件中,然后作为导入从"path“导入到vue组件中。

代码语言:javascript
运行
AI代码解释
复制
const myTemplate = 
{
    a:{
        key11: undefined,
        key12: undefined
    },
    b:{
        key21: undefined,
        key22: undefined
    }
    
}

在组件内部,我使用这个myTemplate对象来创建新的数据属性

代码语言:javascript
运行
AI代码解释
复制
<script>
    data(){
        getfields: myTemplate
    }
</script>

在脚本中,我遍历myTemplate并使用来自父组件的支柱分配它,父组件保存key11, key12 ,key21 ,...的值,依此类推。

myTemplate的目的是作为基本/标准格式,从输入的支柱中收集数据。

稍后,getfieldsv-for<template>标记中循环以显示内容。

我将道具{key11: somevalue1, key12: somevalue2}发送给我的子组件,与myTemplate对象中的键匹配,使用此子组件中的方法更新getfields中的相同键

最终结果:

代码语言:javascript
运行
AI代码解释
复制
{
    a:{
        key11: somevalue1,
        key12: somevalue2
    },
    b:{
        key21: undefined,
        key22: undefined
    }   
}

问题:

在对象的情况下,JS复制引用并修改我的myTemplate对象。

我想让我的myTemplate完好无损,如果getfields被改变了,我不能以任何方式改变它。

我尝试过的:

  1. 深克隆人const getfields : JSON.parse(JSON.stringify(myTemplate))

  1. 尝试了动态导入,希望能有所帮助,但它很有力量。

让self=导入(“路径”).then((数据) =>{ self.getfields = data.default })

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-11 09:32:53

我建议您使用Lodash库来用_.cloneDeep()克隆对象

例如:

代码语言:javascript
运行
AI代码解释
复制
import _ from 'lodash'

。。。

代码语言:javascript
运行
AI代码解释
复制
const getfields = _.cloneDeep(myTemplate)

这是我与Vuejs一起使用的库,用于防止原始元素中那些意外的修改,因为它只是复制它。

正式文件:https://lodash.com/docs/

如果您访问互联网的权限有限,则应使用VanillaJs创建克隆函数,请参阅此https://medium.com/weekly-webtips/deep-clone-with-vanilla-js-5ef16e0b365c

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71082749

复制
相关文章
CSS 为没有内容的元素设置样式 :not(:empty)
当我们想要根据元素内部是否有内容来显示特定的样式时 我们可以使用 :not 与:empty 结合来实现这个效果 代码如下 .handle_menu_content:not(:empty){ width: 90px; position: fixed; z-index: 999999; top: 0; z-index: 9999999; left: 38px; background: #fff; border-r
拿我格子衫来
2022/01/24
1.8K0
修改表单元素中placeholder属性样式、清除IE浏览器中input元素的清除图标和眼睛图标
在做项目的时候,一般表单元素的placeholder属性样式都是使用浏览器默认的,但有时候为了追求设计上的美感需要修表单元素的placeholder样式(也有可能是遇到了一个处女座的设计师或者是客户),就不等不修改一下placeholder的样式。可以通过下面的代码修改样式:
用户6167509
2019/09/04
2K0
修改表单元素中placeholder属性样式、清除IE浏览器中input元素的清除图标和眼睛图标
为什么我的样式不起作用?
大概看一下代码,是有一个Parent的父组件,蓝底白字。还有一个Child的子组件,红底黑字。 那么实际渲染出的样式是什么样子的呢。如下图:
w候人兮猗
2020/07/01
4.2K0
HTML中的内联元素与块级元素
文章作者:Tyan 博客:noahsnail.com  |  CSDN  |  简书
Tyan
2022/05/09
3.2K0
为什么我的HibernateDaoSupport没有注入SessionFactory
1.按理来说Spring应该会通过setSessionFactory方法将SessionFactory注入进来,可是并没有。
用户2032165
2019/04/09
3.1K0
为什么我的HibernateDaoSupport没有注入SessionFactory
为什么 MyBatis 源码中,没有我那种 if···else
在MyBatis的两万多行的框架源码中,使用了大量的设计模式对工程架构中的复杂场景进行解耦,这些设计模式的巧妙使用是整个框架的精华。
搜云库技术团队
2023/10/21
2020
为什么 MyBatis 源码中,没有我那种 if···else
html table样式设计_html设置table中的字体
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/05
5.7K0
为什么 MyBatis 源码中,没有我那种 if···else
在MyBatis的两万多行的框架源码中,使用了大量的设计模式对工程架构中的复杂场景进行解耦,这些设计模式的巧妙使用是整个框架的精华。
一行Java
2023/09/19
2340
为什么 MyBatis 源码中,没有我那种 if···else
html中table样式_table样式设置
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/05
5.5K0
html中table样式_table样式设置
html 中的可替换(置换)元素
在 CSS 中,可替换元素(replaced element)的展现效果不是由 CSS 来控制的。这些元素是一种外部对象,它们外观的渲染,是独立于 CSS 的。
用户9914333
2022/07/21
3.2K0
html中各种hr样式
<hr style=" height:2px;border:none;border-top:2px dotted #185598;" />
致Great
2023/08/26
1870
html直接分页的样式,HTML分页样式「建议收藏」
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/160613.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/09
6.6K0
4.HTML样式布局区块标签元素介绍
本章节,主要介绍HTML布局与区块的元素介绍, 比如头部,中部,尾部以及行内区块与行外区块等,具体讲解如下述所示。
全栈工程师修炼指南
2023/03/21
1.4K0
4.HTML样式布局区块标签元素介绍
嵌套的 HTML 元素
<!DOCTYPE html> <html> <body> <p>这是第一个段落。</p> </body> </html>
用户8442333
2021/08/21
2K0
三种方式解决vue中v-html元素中标签样式
三.通过 >>> 可以使得在使用scoped属性的情况下,穿透scoped,修改其他组件的值
honey缘木鱼
2018/11/21
2.6K0
我的markdown样式
样式 * { font-family: "微软雅黑"; } html { padding: 0px; margin: 0px; color: #000; background: #fff; -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; } body{ padding: 0px 10px; margin: 0px; border: 1px dashed
码客说
2019/10/22
4600
html 简单的table样式
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/155752.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/06
3.2K0
html 简单的table样式
如何更改伪元素的样式
在前端开发中我们会经常用到伪元素,有时候需要通过js来修改伪元素的样式,那么有哪几种方式来修改伪元素的样式呢?
挥刀北上
2021/01/27
9.4K0
如何更改伪元素的样式
获取元素的样式属性 原
document.getElementById("test").style.color 这种方式获取的只是内联样式,并不能获取内部样式和外部样式,下面为内部样式
tianyawhl
2019/04/04
2.4K0
v-if绑定的元素为什么事件没有响应
Vue是一套构建用户界面的 渐进式框架,入门也比较容易,但在使用过程中却可能会遇到这样那样的问题,今天笔者就将使用中遇到的一个问题记录于此,希望能帮到遇到类似问题的朋友。
johnhuster的分享
2022/03/28
1.2K0

相似问题

使用JQuery在5个表列后添加新表行

13

如何通过javascript在页面后添加表的行?

37

通过Javascript动态添加表行后删除

13

达到行限制后自动删除表行,并使用带有javascript的Websocket数据向行添加新数据

17

如何使用Jquery在表行和表列中添加对象

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文