Javascript 反应功能组件与类组件
在过去的3个月里,我是React的初学者,但是,实现组件的方法分为两种:函数式和类式。截至2021年,学习、功能性风格或课堂风格组件的发展路径Javascript 反应功能组件与类组件,javascript,reactjs,react-native,react-hooks,Javascript,Reactjs,React Native,React Hooks,在过去的3个月里,我是React的初学者,但是,实现组件的方法分为两种:函数式和类式。截至2021年,学习、功能性风格或课堂风格组件的发展路径 从长远来看,可能在未来5年内,开发方法将如何适应 基于这种风格,我可以专注于特定组件风格的设计模式和体系结构风格 我认为您要问的问题是钩子与类,因为功能组件从React一开始就存在了。在使用钩子之前,对功能组件的使用有一定的限制,必须使用类组件来创建React应用程序。但是,自从引入了钩子之后,现在您可以对功能组件中的类做任何可以做的事情 Hooks绝
- 从长远来看,可能在未来5年内,开发方法将如何适应
- 基于这种风格,我可以专注于特定组件风格的设计模式和体系结构风格
我认为您要问的问题是钩子与类,因为功能组件从React开始就存在了。在使用钩子之前,对功能组件的使用有一定的限制,必须使用类组件来创建React应用程序。但是,自从引入了钩子之后,现在您可以对功能组件中的类做任何可以做的事情 Hooks绝对是现在要走的路。React文档中甚至提到了它: 从长远来看,我们希望钩子是人们编写组件的主要方式
从长远来看,您应该关注功能组件,因为react团队建议使用功能组件来管理组件的状态
但这并不意味着您应该完全忽略类组件。原因是在职业生涯中,您可能会提出在引入使用类组件的钩子之前编写的代码库,并且不允许您将其重构为功能组件(不这样做可能有各种原因)在这种情况下,您对类组件的了解将派上用场。从长远来看,您应该关注功能组件,因为react团队建议使用功能组件来管理组件的状态
但这并不意味着您应该完全忽略类组件。原因是在职业生涯中,您可能会提出在引入使用类组件的钩子之前编写的代码库,并且不允许您将其重构为功能组件(不这样做可能有各种原因)在这种情况下,您对类组件的了解将派上用场。我不想提及其他人,我想分享我的经验,当我需要调用操作或API调用时,我将使用类组件,当我需要状态更改和灵活的数据更改时,请使用功能组件 看看这个例子,你会发现哪一个更好: 注意:在输入中传递相同值时也要进行检查 类组件:
let appender=0;
类应用程序扩展了React.Component{
状态={
您好:“
}
setHello=(value)=>this.setState({hello:value})
render(){
返回(
你好{这个州,你好}
依附体:{++appender}
)
}
}
让ChildRender=0;
子类扩展了React.Component{
状态={
投入:“世界”
}
按钮句柄=()=>{
this.props.setHello(this.state.input)
}
inputHandler=(e)=>{
this.setState({input:e.target.value})
}
componentDidMount(){
this.props.setHello(this.state.input)
};
render(){
返回(
ChildRender:{++ChildRender}
打招呼
)
}
}
render(,document.getElementById(“react”)代码>
我不想提及其他人,我想分享我的经验,当我想调用动作或API调用时,我会使用类组件,当我想更改状态和灵活的数据更改时,我会使用功能组件
看看这个例子,你会发现哪一个更好:
注意:在输入中传递相同值时也要进行检查
类组件:
let appender=0;
类应用程序扩展了React.Component{
状态={
您好:“
}
setHello=(value)=>this.setState({hello:value})
render(){
返回(
你好{这个州,你好}
依附体:{++appender}
)
}
}
让ChildRender=0;
子类扩展了React.Component{
状态={
投入:“世界”
}
按钮句柄=()=>{
this.props.setHello(this.state.input)
}
inputHandler=(e)=>{
this.setState({input:e.target.value})
}
componentDidMount(){
this.props.setHello(this.state.input)
};
render(){
返回(
ChildRender:{++ChildRender}
打招呼
)
}
}
render(,document.getElementById(“react”)代码>
它们之间几乎没有什么可供选择的,但您会发现现在有很多教程和指南都是为功能组件编写的,对于刚刚起步的人来说,您可能希望坚持使用您可以轻松找到相关信息的内容。而且甚至React团队也更加关注功能组件,我坚信类组件将在未来几年内悄然淘汰,因此可能会使用功能组件。它们之间几乎没有选择余地,但您会发现现在有很多教程和指南都是为功能组件编写的,对于一个刚刚起步的人来说,你可能想要坚持你能轻易找到的东西