React Hook和React-router的基本使用

Hook

Hook 是 React 16.8 的新增特性,React 里面的 Hook 是一个函数.

好处:

它可以让你在不编写 class 的情况下使用 state 以及其他的 React 特性。

Hook可以解决的问题:

  • 避免地狱式嵌套,可读性提高。
  • 函数式组件,比class更容易理解。
  • class组件生命周期太多太复杂,使函数组件存在状态。
  • 解决HOC和Render Props的缺点。
  • UI 和 逻辑更容易分离。

目前官网提供的Hook API

基础Hook

Hook 作用
useState 设置state,以及更新state的函数
useEffect 代替原来的生命周期
useContext 如果需要在组件之间共享状态,可以使用useContext()。

额外的Hook

Hook 作用
useReducer 代替原来redux里的reducer,配合useContext一起使用
useCallback 返回一个memoized回调函数,该回调函数仅在某给依赖项改变时才会更新。
useMemo 控制组件更新条件,可根据状态变化控制方法执行,优化传值
useRef 跟以前的ref一样
useImperativeHandle 可以在使用ref时自定义暴露给赋组件的实例值
useLayoutEffect 与useEffect相同,会在所有的DOM变更之后同步调用effect
useDebugValue 在 React 开发者工具中显示自定义 hook 的标签,调试使用。

我只写几个Hook,不全写

useState

设置state,以及更新state的函数
返回:

  • 当前的 state 值
  • 一个允许更新 state 值的 function
    父组件
import React, {
    useState } from 'react'
import Child from './child'
function Parent() {
   
    // 声明一个新的叫做 name 的 state 变量
    // let [状态的值,修改状态的方法]=userState(状态的初始值)
    // 字符串格式的写法
    // let [name,setName] = useState("我是parent")
    // 对象格式的写法
    let [data, setName] = useState({
   
        name: '哈哈',
        sex: 'nan',
        age:10
    })
    return <div>
        <Child info={
   data} />
        //点击修改
        <button onClick={
   
            () => {
   
                setName({
   
                    name: '嘿嘿',
                    sex: 'nv',
                    age:10
                })
            }
        }>点一点</button>
    </div>
}
export default Parent

子组件

import React,{
   useState} from '
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值