React组件分类:受控与非受控组件,高阶组件,传送门,严格模式
2023-10-18 14:25:13
React组件分类
React组件可分为受控组件和非受控组件、高阶组件、传送门、严格模式等。
受控组件和非受控组件
受控组件
受控组件是指由React组件完全控制其值和状态的组件。这意味着组件的状态存储在React组件中,而不是组件本身。当用户与受控组件交互时,例如输入文本或选择下拉列表中的选项,React组件将更新其状态以反映用户的输入。
受控组件的优点是,React组件可以完全控制组件的状态,这使得更容易构建复杂的表单和交互式应用程序。
受控组件的缺点是,React组件需要更多代码来处理用户交互。
非受控组件
非受控组件是指不直接由React组件控制其值和状态的组件。这意味着组件的状态存储在组件本身,而不是React组件中。当用户与非受控组件交互时,组件本身将更新其状态以反映用户的输入。
非受控组件的优点是,组件可以更独立地工作,这使得更容易构建简单的应用程序。
非受控组件的缺点是,React组件无法直接控制组件的状态,这使得构建复杂的表单和交互式应用程序更加困难。
高阶函数、柯里化函数、高阶组件(HOC)、forwardRef高阶组件
高阶函数(Higher Order Functions,简称HOC)是一种在其他函数的基础上创建新函数的方法。高阶函数可以接收函数作为参数,并返回一个新的函数。
柯里化(Currying)是一种将函数分解为一系列更小的函数的技术。柯里化函数可以更灵活地重用代码,并更容易理解和维护。
高阶组件(HOC)是一种在其他组件的基础上创建新组件的方法。高阶组件可以接收组件作为参数,并返回一个新的组件。高阶组件可以用于共享代码、添加功能或改变组件的行为。
forwardRef高阶组件是一种可以将ref属性传递到子组件的高阶组件。forwardRef高阶组件通常用于需要在子组件中访问DOM元素的情况。
传送门Portal
传送门(Portal)是一种将组件渲染到父组件之外的DOM元素中的方法。传送门通常用于将组件渲染到一个模态窗口或一个工具提示中。
Fragment和空标签
Fragment是一种特殊的React组件,它可以将多个子组件组合在一起,而不会创建额外的DOM元素。空标签是一种特殊的React组件,它不渲染任何内容。
StrictMode
StrictMode是一种特殊的React组件,它可以帮助检测应用程序中的潜在错误。StrictMode会强制执行某些规则,例如,不允许在render方法中使用状态,不允许在生命周期方法中修改状态。
React中Css推荐写法
在React中,有两种推荐的Css写法:
- CSS模块(CSS Modules):CSS模块是一种将CSS样式与组件封装在一起的技术。这可以防止样式冲突,并使代码更容易维护。
- CSS-in-JS:CSS-in-JS是一种将CSS样式直接写在JavaScript代码中的技术。这可以使代码更加简洁,但也有可能使代码更难维护。