Javascript React中的组件继承
假设我想创建一个视图组件,我想我会这样做:Javascript React中的组件继承,javascript,reactjs,react-native,Javascript,Reactjs,React Native,假设我想创建一个视图组件,我想我会这样做: class MyView extends View { render() { return ( <View ...> <Stuff /> </View> ); } } 类MyView扩展了视图{ render(){ 返回( ); } } 现在,我可能不知道这里有一些非常基本的事情,但如果MyView将包含在容器层次结构更高的其他渲染中,那么在ren
class MyView extends View {
render() {
return (
<View ...>
<Stuff />
</View>
);
}
}
类MyView扩展了视图{
render(){
返回(
);
}
}
现在,我可能不知道这里有一些非常基本的事情,但如果MyView将包含在容器层次结构更高的其他渲染中,那么在render中返回新视图的内容难道不可能吗
因此,我希望能够:
class MyView extends View {
render() {
return (
<Stuff />
);
}
}
类MyView扩展了视图{
render(){
返回(
);
}
}
这是可能的,但不鼓励这样做。“四人帮”给我们的规则是“偏爱组合”而不是继承。作文要灵活得多
你应该直接归还你的东西
class MyView extends View {
render() { return <Stuff/>; }
}
类MyView扩展了视图{
render(){return;}
}
正如blockhead的回答所述,不鼓励继承。但你所描述的类似的东西可以通过构图来实现
您可以创建一个基本组件,该组件始终可以是一个列表组件,根据路由加载不同的组件。其中,例如,特定数据的加载可以始终由BaseComponent完成,并通过道具传递给子级
为此,您还需要不同的容器,这些容器调用包含不同子组件的BaseComponents
最后,容器的外观如下所示:
<BaseComponent>
<Children1 />
<Children2 />
</BaseComponent>
以及:
我同意继承与组合的观点。尽管如此,继承不应该被完全禁止,对于某些事情来说,它是一种有效且有用的技术。在这里,我想介绍一种支持某些基本行为的视图。我想,如果进行渲染的视图已经是一个视图,为什么我必须返回另一个渲染视图。支持合成并不意味着放弃继承,至少在我的书中是这样:)正如我上面回答的,我认为继承有一个有效的角色(虽然在大多数使用继承的情况下都应该使用组合)。但我的问题是,包含组件是否可以只返回它的子组件,而不是添加另一层“自身”:
<BaseComponent>
<Children10 />
<Children12 />
</BaseComponent>