分享更有价值
被信任是一种快乐

react推荐函数组件的原因是什么

文章页正文上

这篇文章主要讲解了“react推荐函数组件的原因是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“react推荐函数组件的原因是什么”吧! 原因:1、函数组件语法更短、更简单,这使得它更容易开发、理解和测试;2、类组件过多的使用this让整个逻辑看起来很混乱;3、hooks功能也只支持函数组件;4、React团队针对函数组件做了更多的优化来避免非必要的检查和内存泄漏;5、函数式组件性能消耗小,因为函数式组件不需要创建实例,渲染的时候就执行一下,得到返回的react元素后就直接把中间量全部都销毁。当使用React框架开发的时候,有两种方式创建组件,使用函数和使用类,目前函数组件越来越流行。下面通过举例的方式,分析函数组件和类组件的不同,并总结一下使用函数组件的原因(优势)。函数组件和类组件处理JSX的方式不同,就像他们的名字,函数组件是一个纯Javascript函数,直接返回JSX;而类组件是一个Javascript类,通过扩展React.Component,并实现render方法,render方法中返回JSX。下面举例说明:
上面通过ES6箭头函数的形式定义了一个函数组件,函数体内直接返回JSX。如果你对箭头函数不熟悉,也可以写成下面这种形式:两种写法是一样的。然后,来看看如何定义类组件,首先我们需要扩展React.Component,然后在render方法中返回JSX,具体看下面的代码片段:上面使用了ES6的解构赋值语法来导入模块,如果你对解构赋值语法不熟悉,也可以写成下面这种形式,会看上去更简洁一些:当需要向一个组件传递数据的时候,我们使用props,比如,name就是Component的一个props属性,这里可以有更多属性。FunctionalComponent组件的函数形式的定义如下:
或者不使用解构赋值这种方式,你需要使用props.name来获取name属性。然后,我们来看看类组件如何使用props,在类组件中,你需要使用this来获取props,然后可以使用解构赋值获取name属性。在React项目中,我们不可避免的要处理状态变量。类组件直到最近才支持处理状态,然而,从React从16.8版本开始,函数组件支持钩子方法useState,这样我们可以很方便的在函数组件中使用状态变量。下面通过一个counter计数器实例来说明它们的不同。
count: {count}这里使用useState钩子,它接收一个初始的state作为参数。在本例中,计数器从0开始,所以我们给count一个初始值0。state的初始值支持各种数据类型,包括null,string或者object对象,只要是javascript允许的都可以。在=号的左边,我们使用解构赋值的形式来接受useState的返回值,包括当前的状态变量和更新该变量的setter函数,即countsetCount。count: {this.state.count} times与函数组件大同小异,首先我们要理解React.Component的构造函数constructor,react的官方文档对constructor的定义如下:“The constructor for a React component is called before it is mounted. When implementing the constructor for a React.Component subclass, you should call super(props) before any other statement. Otherwise, this.props will be undefined in the constructor, which can lead to bugs.”翻译一下,React组件的constructor方法会在组件完全加载完成之前调用。在constructor方法中,你需要在第一行调用super(props),否则会报this.props是undefined的错误。如果在类组件中,你没有实现constructor方法并调用super(props),那么所有的状态变量都将是undefined。所以,别忘记先定义constructor方法,在constructor方法中,我们需要给this.state一个初始值,像上面的代码那样。然后我们可以在JSX中使用this.state.count来获取count的值,setter的使用也是类似的。这里先定义一个onClick方法,后面会用到,这里注意setState()方法接收的是个箭头函数,而箭头函数的参数是state和props,props是可选的,这里没用到就没写。React的组件在它整个的渲染的过程中,有它的生命周期。如果你之前一直使用类组件,刚刚接触函数组件,你可能会疑惑,为什么在函数组件中没有componentDidMount()这类的生命周期方法?但是别急,有其他的钩子函数可以使用。
类组件的生命周期函数componentDidMount会在首次渲染完成之后调用。首次渲染完成之前会调用componentWillMount ,但是这个方法在新版本的React中不推荐使用了。在函数组件中,我们使用useEffect钩子函数来处理生命周期内的事件,像下面这样,useEffect有两个参数,第一个是箭头函数,第二个是[][]里面是变化的state(s)。什么意思呢?就是[]中的状态变化了,箭头函数会被调用。如果像现在这样写个[],那箭头函数只会在组件第一次渲染之后调用一次,其功能类似下面类组件的componentDidMount。这里注意return的也是一个箭头函数,这个函数就是在卸载阶段执行的。当你需要执免费云主机、域名行一些卸载操作,可以放在这里,比如你可以把clearInterval放在这里,避免内存泄漏。使用useEffect钩子函数的最大好处就是可以把加载函数和卸载函数放在一个同一个地方。这里对比一下类组件的写法:感谢各位的阅读,以上就是“react推荐函数组件的原因是什么”的内容了,经过本文的学习后,相信大家对react推荐函数组件的原因是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是云技术,小编将为大家推送更多相关知识点的文章,欢迎关注!

相关推荐: vue如何获取值

这篇文章主要介绍了vue如何获取值的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue如何获取值文章都会有所收获,下面我们一起来看看吧。 在Vue中获取值主要有两种方式,一种是使用指令,另一种是使用计算属性。Vue中提供了一些指令…

文章页内容下
赞(0) 打赏
版权声明:本站采用知识共享、学习交流,不允许用于商业用途;文章由发布者自行承担一切责任,与本站无关。
文章页正文下
文章页评论上

云服务器、web空间可免费试用

宝塔面板主机、支持php,mysql等,SSL部署;安全高速企业专供99.999%稳定,另有高防主机、不限制内容等类型,具体可咨询QQ:360163164,Tel同微信:18905205712

主机选购导航云服务器试用

登录

找回密码

注册