加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Angular:将数据传递给组件的最佳方式(对象与多个参数)

发布时间:2020-12-17 17:33:03 所属栏目:安全 来源:网络整理
导读:我想知道以下哪个更好 my-component [data]="settings"/my-component 要么 my-component [bar]="settings.foo.bar" [baz]=settings.baz"/my-component 然后设置对象看起来像这样 this.settings = { foo: { bar: 10 } baz: 2}; 第一种形式是紧凑的,但不太明确
我想知道以下哪个更好

<my-component [data]="settings"></my-component>

要么

<my-component 
    [bar]="settings.foo.bar"
    [baz]=settings.baz"></my-component>

然后设置对象看起来像这样

this.settings = {
    foo: { bar: 10 }
    baz: 2
};

第一种形式是紧凑的,但不太明确我的组件需要什么.我可以想象,在某些情况下,将整个对象传递给组件会更好(例如,如果有太多属性).性能如何呢?如果你绕过整个物体,我可以想象变化检测更难,性能更差.任何有关此主题的帮助/提示将不胜感激!

解决方法

我认为指定单个值是一种更好的方法.正如您所写,它更明确地说明您需要什么,并且您可以指定其他来源(不仅仅是设置对象)的值.这样,变更检测很容易,您可以使用

@Component({  
  changeDetection: ChangeDetectionStrategy.OnPush
})

使用OnPush策略,如果没有任何输入值发生更改,Angular将跳过组件子树的更改检测.

有关详情,请参阅

> https://blog.thoughtram.io/angular/2016/02/22/angular-2-change-detection-explained.html
> https://blog.thoughtram.io/angular/2017/02/02/making-your-angular-app-fast.html

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读