React基础

1.useState()

useState是一个React Hook(函数),它允许我们向组件添加一个状态变量,从而控制影响组件的渲染结果

import { useState } from "react";

function App() {
  // 渲染列表
  function renderList(itemList) {
    return itemList.map((item, index) => <h3 key={index}>{item.name}</h3>);
  }

  function forIm(itemList) {
    let text = "";
    for (const key in itemList) {
      text += itemList[key];
    }
    return text;
  }
  let [listName, setListName] = useState([
    { name: "John", age: 20 },
    { name: "Jane", age: 25 },
    { name: "Doe", age: 30 },
  ]);

  let [xiaoming, serXiaoming] = useState({
    name: "小明",
    age: 18,
  });
  function logy(e, name) {
    console.log("yaojunhao logy", name);
    console.log("yaojunhao logy", e);
    setListName([...listName, { name: "Daxoe", age: 20 }]);

    console.log("yaojunhao xiaoming", xiaoming);
    serXiaoming({ ...xiaoming, sex: "男" });
  }
  return (
    <div className="App">
      <h1>This is React App</h1>
      <button onClick={(e) => logy(e, "Hello World!")}>按钮</button>
      {renderList(listName)}
      <p></p>
      {forIm(xiaoming)}
    </div>
  );
}

export default App;

1. React Hooks

React Hooks是React 16.8版本引入的一个重要特性,允许在函数组件中使用状态和其他React特性。常用的React Hooks包括:

useState:用于在函数组件中添加状态。它接收一个初始状态,并返回一个状态变量和一个更新该状态的函数。

useEffect:用于在函数组件中执行副作用操作,如数据获取、订阅或手动更改DOM等。它接收一个函数作为第一个参数,该函数会在组件渲染到屏幕后执行。

useContext:用于在组件树之间共享状态。它通过React的Context API实现,允许组件跨层级访问共享数据,避免了prop drilling的问题。

useReducer:用于管理复杂的状态逻辑。它接收一个reducer函数和一个初始状态,并返回一个状态对象和dispatch函数,类似于Redux中的用法。

useCallback:用于缓存函数引用,避免在每次渲染时都重新创建函数,从而优化性能。它接收一个函数作为第一个参数,该函数会在依赖项发生变化时重新创建。

useMemo:用于缓存计算结果,避免在每次渲染时都重新计算。它接收一个创建值的函数和一个依赖项数组,仅当依赖项发生变化时才会重新计算值。

useRef:用于在函数组件之间持久保存数据,类似于在类组件中使用实例变量。它返回一个可变的ref对象,其.current属性被初始化为传入的参数。

useLayoutEffect:其用法与useEffect类似,但会在所有DOM变更后同步调用。适用于需要立即读取DOM布局或同步重绘的场景。

useImperativeHandle:用于在函数组件中使用ref时,自定义暴露给父组件的实例值。它允许父组件通过ref调用子组件中的方法或访问子组件的状态。

这些Hooks涵盖了状态管理、副作用处理、性能优化、DOM操作等各个方面,为开发者提供了强大的工具,大幅提高了开发效率和代码质量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值