react小记

react中分为class组件和函数组件,现在主要使用的是函数组件因为更新了十几个hook,让函数组件使用更加的方便,其中最常用的hook是数据获取useState他的主要作用是拉取数据渲染(狗头保命自己的理解),useEffect我的理解是里面传两个参数一个是函数一个是监听的数据,它的作用是避免数据重复获取 前提是他的你写了他的第二个参数没有监听的数据就用空数组, useRef我用到的功能是绑定搜索框让搜索框的ref绑定声明的useRef变量 获取搜索框输入的内容useRef声明的变量.current.value(肯定有其他功能请大佬指点)  useNavigate用做路由的跳转(前提注册了的路由)useLocation获取当前 location 信息对跳转的路由参数进行接收    useParms回当前匹配路由的params参数   useSearchParams 用于读取和修改当前位置的URL中的查询字符串   useRoutes路由表  在路由表里 只有一级路由需要加/,一级路由下的二级路由不需要加/否则找不到组件 useLnRouterContext 判断路由环境 返回true就是存在 返回false就是不存在  useBavigationType判断当前页面通过那种方式跳转 replace/push/pop(刷新页面)useResolvedPath解析路径使用

useRef
let myRef = useRef()
<input type="text" ref={myRef} />
const val = myRef.current.value
console.log(val);
useNavigate
let router = useNavigate();
let onsearch = () => {
   router("/search");
};
 useLocation
const state = useLocation();
let word = state.search.slice(1);

性能优化:useMemo useCallback React.memo

React.memo作用是缓存组件 它会将传入的组件加上缓存功能生成一个新的组件 然后返回新组件

避免负优化
只渲染一次,之后都不会更新的组件,不要使用 React.memo。
props 每次都会改变的组件,不要使用 React.memo,使用 React.memo 只会带来不必要的新旧 props 比较和无意义的缓存。
组件如果很简单,不建议使用 React.memo,并不能带来多大提升,而使用 React.memo 本身就有心智负担。
如果你无法很好地量化性能,不建议使用 React.memo。

useCallback缓存的是一个函数,useMemo缓存的是计算结果

 父子传值

 

 class组件

在类组件中没有hook可以用获取数据的方法是this.setState获取数据通过箭头函数避免获取不到this  获取不到this的时候this指向undefined,需要在constructor里面去更改this指向  不太会类组件

react-router-dom v5 与 reacr-router-dom v6 区别

1.v6 中 Switch 名称变为 Routes

2.v6 的变化 不再支持子组件和 component , 改为 element   element的值为组件标签 Route标签必须被Routes标签里,不然报错

3.v6 中,exact 属性不再需要  v6 内部算法改变,不再需要加exact实现精确匹配路由,默认就是匹配完整路径。如果需要旧的行为,路径后加/*

4.v6 中,Route 先后顺序不再重要,React Router 能够自动找出最优匹配路径

5.v6 嵌套路由改为相对匹配  嵌套路由必须放在 中,且使用相对路径,不再像 v5 那样必须提供完整路径,因此路径变短。

6.v6 移除 Redirect组件,改为使用 Navigate:

7.v6 用useNavigate实现编程式导航,useHistory被移除   如果要重定向:  除此之外,还可以使用navigate(-1)后退到前一页,使用navigate(-2)后退到前一页的前一页,navigate(1)前向导航,依此类推。使用 useLocation 接收 useNavigate传递

8.useRoutes 声明式的路由配置方式   声明式路由中,不能写index, 可以让path: “” , 来实现显示默认组件;  useRoutes函数,会返回已经渲染好的路由元素

9.useParams返回当前动态路由参数    useSearchParams使用   useSearchParams hook 来访问查询参数(/xx/xx?userId=123)。其用法和 useState 类似,会返回当前对象和更改它的方法。更改 searchParams 时,必须传入所有的查询参数,否则会覆盖已有参数。

redux


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值