前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >vue props注意

vue props注意

作者头像
阿超
发布2022-08-21 13:40:21
3200
发布2022-08-21 13:40:21
举报
文章被收录于专栏:快乐阿超快乐阿超

官方文档:https://cn.vuejs.org/v2/guide/components-props.html

我们在使用vueprop

如果prop其数据类型为一个对象

则传入的是一个对象的地址引用

我们如果在子组件中使用watch将其赋值给一个data,用于外部组件状态发生变化时,内部的某一data也能同时响应:

代码语言:javascript
复制
  watch: {
    productionData: {
      immediate: true,
      handler() {
        this.myData = this.myProp
      },
    }
}

这时候如果我们对myData里的属性进行更改,发现外部(父组件)传过来的对象数据源也发生了变更

如果我们想要深拷贝

则可以使用:

代码语言:javascript
复制
function deepClone( obj ){
  let clone = obj;
  if (obj && typeof obj === "object") {
    clone = new obj.constructor();

    Object.getOwnPropertyNames(obj).forEach(
      prop => (clone[prop] = deepClone(obj[prop]))
    );
  }
  return clone;
};

运行:

代码语言:javascript
复制
let ids = [1,2,3]
let obj = deepClone({ruben:{ids}})
ids.pop()
console.log(obj)		// {"ruben":{"ids":[1,2,3]}}
console.log(ids)		// [1, 2]
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-05-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档