day0622
十六、immutable.js
1、JavaScript数据修改的问题
背一背面试用
mutate动词更新
每次返回的都不是原值是新值,可以回溯???
解构共享
实现原理:持久化数据结构( Persistent Data Structure)
map、list、seq
判断引用对象值是否相等
map.equals(map2)
is(map,map2)
每次都返回新的对象,但===相等
数据解构可以混搭嵌套使用,要使用不同的api
任何方法都返回新值
map有顺序,merge()方法往后加,可加对象
返回的值相等,但===不等
toJS
fromJS
seq惰性
flip翻转key,value
set与setIn
map.withMutations
redux-immutable
十七、Lazy 和 Suspense
组件、懒加载
进行react优化
React顶层api
从react直接导
compoment
purecompoment
memo
createElement()
createFactory()
Children
高阶组件??forwardRef透传
组件外部拿到任意子组件内部引用
cloneElement
十九、React Router
路由
实现跟vue不一样
reactrouter.com/web
路由切换、传参、跳转、高亮、守卫
就地渲染
路径匹配就渲染,包容性路由
BrowserRouter
Route
Link
Redirect
Switch实现排他性路由
NavLink
传参:
1.动态路由、2.query、3.location.state推荐
解析query:
window.URLSerachParams()
路由渲染组件的方式:4种
1.component
也可以传props,但一般只传组件
2.router
react为了性能,不是所有组件都有router,search
想有加装饰器???withRouter高阶组件
3.render渲染函数
既可以传组件,又可以传函数(返回值需为组件实例)
传props
4.Route
不要放在switch排他性路由里面
children不需要路径path匹配
奇葩的匹配
能获得匹配/不匹配的信息???
十八、React Hooks
use开头的都是hooks
16.8新增
为什么要用hooks
层级越来越深,嵌套回调地狱
钩子
之后所有组件都是函数,加TS
没有setState
useState
导入useState
每次都会run一次代码
useEfect
两个参数:
回调函数,
依赖数组???
useRef
useUpdate
自己模拟