在反应中,我可以像这样随意传递道具:
function SomeComponent(props) { const {takeOutProp, ...restOfProps} = props; return <div {...restOfProps}/>; }
如何在Angular中做同样的事情?
-
更具体地说,我想编写一个自定义的下拉组件,并将props传递给选择框。
与React组件相反,Angular组件不会在输入更改时重新编译,而不会使用@Input属性装饰器来启用更改检测。应该将所有预期传递的属性明确定义为组件输入。
@Input
对于自定义选择组件,没有比这更好的选择了。可以从当前组件元素读取静态 属性 并将其设置在嵌套的组件元素上,但这不会设置绑定。
至于包裹组件中深道具的React配方:
const Baz = props => <p>{props.baz}</p>; const Bar = props => <Baz {...props} />; const Foo = props => <Bar {...props} />;
这通常由Angular DI和喷射器的层次结构处理。可以在相应的注射器上定义提供程序,以使嵌套组件可以使用数据和行为。