Angular:同时使用ViewChild和Input,副作用还是最佳实践



如果同时使用ViewChildInput,会有任何错误或冲突吗?还是建议一般做法?

当前具有"父级"one_answers"子级"组件。

要求:

a( 父组件需要告诉子组件执行许多事情:将表单标记为已触摸、更新值、操作DOM、删除验证器等。使用@Input((更难做到的事情。

b( 同样需要应用输入,但是查看这里的资源,ViewChild vs input/Ouput-Angular Best Practices

ViewChild不会显示子组件View数据更改,这些更改来自使用NgOnChanges((正在进行的输入。但是,使用@Input((将呈现Input/参数中的更改。

因此,如果同时使用ViewChild和Input这两个选项来提取这两个好处,想知道以后是否会导致错误?如果Native Angular 8有这两种与孩子沟通的方式,它会面临任何渠道沟通问题吗?

其他资源:

角度';s@input与viewchild用于将数据从父组件发送到子组件

您指示的链接有点旧。在我看来,当我们想使用child(*(的方法或函数,或改变他的方面时,使用viewChild是有用的。对于控制变量、FormGroup或formControl,我的最佳选择是使用@Input。

请记住,当我们将一个对象传递给Input中的子对象时,会有一个唯一的对象,因此当任何更改发生时,父对象和子对象都有值,无论是在子对象中还是在父对象中,例如,如果我们传递FormGroup,您可以标记为已触摸,删除/添加验证器,使用setValue。。。来自父母或形成子女。关于@Input是真的,如果你有一个"固定输入"-你传递一个不变的变量-,作为

<child greet="Hello word"></child>

您应该在构造函数中使用@Attribute,而不是输入

constructor(@Attribute('greet') greet){}

(*(您可以使用带有setter的输入,但在这种情况下,我更喜欢使用viewChild或变量引用

最新更新