我是前端,用react年了。我来回答这个问题!
首先,有三种方法可以创建react组件:
功能性无状态组件
采取
(不推荐)
类继承
让让我们分别谈三种。
第一种:
它只是一个形式上的函数,函数参数是传入的属性props。在生命周期中没有钩子函数,它不会被实例化。函数中不能使用this关键字,组件的数据来自props。没有自己状态的组件可以采用这种方法,优点是性能好。
第二种:基本废弃。
第三种:
以es6类的形式定义,继承自react的组件,生命周期中的每个钩子函数都挂在实例上,在整个生命周期中可以通过state和props控制组件的状态,state就是组件本身的状态。
高阶分量
所谓高阶分量,其实就是把一个分量传入一个函数,返回一个新的分量。实现方法如下:
1.定义一个函数,参数是react组件,返回另一个组件。
2.采用
三个经典项目
1、根据类型
这里的类型是指文件在项目中扮演的角色类型。比如文件是一个组件(显示组件)和一个容器(容器组件),还有action、reducer等。在redux状态管理中。不同角色的文件放在单独的文件夹里,所以这种风格的结构也是react官方推荐的。
2、显示页面功能
由于一个页面函数对应一个文件夹,所以这个页面函数使用的容器、组件、动作、缩减器等文件都放在这个文件夹里。
3、鸭子
它指的是redux项目的新目录结构。他主张将相关的reducer、actions、actiontype和actioncreaters写在一个文件中。本质上是基于应用状态而不是页面的功能,这样管理相同状态的依赖项都在同一个文件中,不管哪个容器主线需要这个状态。您只需要导入管理这种状态的模块文件。