React函数式组件及React常用hooks

本文详细介绍了React函数式组件及其优势,强调了避免在组件内声明生命周期外的函数以优化性能。此外,探讨了React Hooks的引入,包括useState、useEffect、useRef和useMemo,展示了它们在管理状态、操作DOM、复用逻辑和提高性能等方面的强大功能,并给出了具体的代码示例和使用规则。
摘要由CSDN通过智能技术生成

React函数式组件及常用hooks

函数式组件

函数式组件简单介绍

  • 函数式组件: 函数式组件本质就是一个普通函数, 接收一个props参数, 并返回一个 reactElement .

  • 函数式组件中没有 this和生命周期函数, 不能使用 string ref

  • 使用函数式组件时应该尽量减少在函数组件内部生命子函数, 否则, 每次组件更新时, 都会重新创建这个函数, 会导致性能比较差.

函数式组件案例代码演示: 一个简单的函数式组件

import React from 'react'
/**
 * 函数式组件: 本质就是一个函数
 *  - 函数接收一个参数: 参数是父组件传递过来的属性 props
 *  - 函数组件必须有一个返回值, 返回值是该组件要输出的内容.
 *  - 函数组件中没有this, 所以函数组件是一个无状态组件
 *  (16.8-) 无状态组件: 函数组件
 *      - 函数组件没有状态及生命周期
 *      - 函数组件也没有 this
 */

function Child(props) {
    
    console.log('子组件接收的props -->>',props);
    return(
        <div>
            <h2>我是子组件 -> {
    props.name}</h2>
        </div>
    )
}

function App() {
    
    return(
        <div>
            <h1>hello, React</h1>
            <Child name={
    "Gene"} />
        </div>
    )
}
export default App

React hooks(钩子)

React hooks 官网介绍

React hooks 是React 16.8 中新增的功能, 它们使得我们无需编写类即可使用状态和其他的 React 功能

React hooks的优势

  • 简化组件的逻辑.
  • 复用状态的逻辑.
  • 无需使用类组件编写.

常用hook - useState

React 中, 通常 use 开头的都是hook, 所以后期我们自定义hook 的时候也是遵循这套规则.

useState 用来初始状态, 类似于类组件中的 state.

[state,setState] = useState(initState)
	- state 当前对应的状态
    - setState 修改 state 的方法
// useState 返回一个数组
   - 数组的第一项是初始的状态数据.
   - 数组的第二项是修改对应状态数据的方法.
    
// 注意,[state,setState], 数组中的 state和setState并不需要一定是这两个变量, 因为它是个数组,所以我们解构的时候只是按照数组对应的索引来结构,跟变量名称无关, 所以这里这两个变量是可以写成任意具有实际意义的其他变量名称的, 比如如下代码
    [name,setName] = useState('Gene')

useState 的使用案例代码如下:

import React,{
    useState,createRef} from 'react'
const inputRef = createRef()
function Child(props) {
    
    console.log('子组件接收的props--->',props);
    const {
    name,setName} = props;
    return(
        <div>
           <p>name:{
    name}</p>
            <form action="#">
                <input type="text"
                    value={
    name}
                    ref={
    inputRef}
                    onChange={
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值