React 介绍

发布时间: 更新时间: 总字数:2581 阅读时间:6m 作者:IP:上海 网址

React 用于构建 Web 和原生交互界面的库,React 组件是 JavaScript 函数

介绍

使用

jsx

  • JSX 是 JavaScript 语法扩展,可以让你在 JavaScript 文件中书写类似 HTML 的标签
    • 它是由 React 推广的 JavaScript 语法扩展。将 JSX 标签与相关的渲染逻辑放在一起,使得创建、维护和删除 React 组件变得容易。
    • 在 JSX 中通过大括号 {} 使用 JavaScript,示例:<h1>{name}'s To Do List</h1>
    • 使用双大括号{{}}:JSX 中的 CSS 和 对象,示例:<ul style={{ backgroundColor: 'black', color: 'pink' }}>
      • 在 JSX 中看到 {{}} 时,需知道它只不过是包在大括号里的一个对象
  • 在 React 中,通常使用 onSomething 命名代表事件的 props,使用 handleSomething 命名处理这些事件的函数

useState

useState Hook 会重用作为初始 state 传入的值以确定值的类型

    const [num,setNum] = React.useState(0)
    React.useEffect(() => {
        console.log("监听到num变化, num is"+ number)
    },[num])

    // 更新
    setNum(1)

使用场景

  • 当你想要整合两个组件时,将它们的 state 移动到共同的父组件中。
  • 然后在父组件中通过 props 把信息传递下去。
  • 最后,向下传递事件处理程序,以便子组件可以改变父组件的 state 。
  • 考虑该将组件视为“受控”(由 prop 驱动)或是“不受控”(由 state 驱动)是十分有益的。
UseStateDemo ...

useReducer

useReducer 是一个更复杂的 Hook,它接受一个 reducer 函数和一个初始 state 作为参数,并将从初始 state 推断出 reducer 函数的类型。

UseReducerDemo ...

useContext

useContext 是一种无需通过组件传递 props 而可以直接在组件树中传递数据的技术。它是通过创建 provider 组件使用,通常还会创建一个 Hook 以在子组件中使用该值。

UseContextDemo ...

useMemo

useMemo 会从函数调用中创建/重新访问记忆化值,只有在第二个参数中传入的依赖项发生变化时,才会重新运行该函数。

UseMemoDemo ...

useCallback

useCallback 会在第二个参数中传入的依赖项保持不变的情况下,为函数提供相同的引用。

UseCallbackDemo ...

useRef

  • 使用 ref 可以确保:
    • 可以在重新渲染之间 存储信息(普通对象存储的值每次渲染都会重置)
    • 改变它 不会触发重新渲染(状态变量会触发重新渲染)
    • 对于组件的每个副本而言,这些信息都是本地的(外部变量则是共享的)
  • ref 和 state 的不同之处
UseRefDemo ...

useNavigate

  • useNavigate 钩子函数返回一个可以控制跳转的函数;比如可以用在提交完表单后跳转到其他页面。

useParams

  • useParams 钩子函数返回动态路由的匹配参数键值对对象;子路由中会集成父路由的动态参数

普通组件

常见库

  • React Flow 一个高度可定制的 React 组件,用于构建基于节点的编辑器和互动图表
  • antvis/L7Editor 基于 L7 的地理数据编辑工具
  • CodeMirror 是一款网络代码编辑器组件。它可用于网站的文本输入框,支持多种编辑功能,并具有丰富的编程接口,允许进一步扩展
  • fingerprintjs JavaScript 库,用于在浏览器中收集设备指纹信息,以识别用户身份
  • auth.js
  • react-native-echarts React Native ECharts Library
本文总阅读量 次 本站总访问量 次 本站总访客数