Keep-alive是缓存路由使用的,保留之前路由的状态
只有当组件被加载时,对应的资源才会导入
只要你能确保 context是可控的,合理使用,可以给react组件开发带来强大体验
功能:给纯函数组件加上state,响应react的生命周期
当props/states改变时,PureComponent会对它们进行浅比较,起到性能优化的作用;相当于在component组件的shouldComponentUpdate方法中进行了比较才渲染
JSX 使用js的形式来写html代码
Immutable是一种不同变的数据类型,数据一旦被创建,就不能更改的数据,每当对它进行修改,就会返回新的immutable对象,在做对象比较时,能提升性能;
jsx以js为中心来写html代码
如果一个函数,接受一个或多个函数作为参数或者返回一个函数,就可称之为高阶函数
高阶组件就是一个函数(react函数组件),接收一个组件,处理后返回的新组件高阶组件是高阶函数的衍生核心功能:实现抽象和可重用性
不谈场景的技术都是在耍流氓
useEffect可以让你在函数组件中执行副使用(数据获取,设置订阅,手动更改React组件中的DOM)操作
react更新DOM之后运行的一些额外代码,操作完成即可忽略
effect返回一个函数,在清除时调用 (相当于class中componentWillUnmount生命周期)
共享状态钩子,在组件之间共享状态,可以解决react 逐层通过props传递数据的问题
action 钩子,提供了状态管理
useState
是一个内置的 React Hook。useState(0)
返回一个元组,其中第一个参数count
是计数器的当前状态,setCounter
提供更新计数器状态的方法。react fiber 是一种基于浏览器的单线程调度算法
Virtual DOM 是对 DOM的抽象,本质是js对象,这个对象就是更加轻量级对DOM的描述
结论:有时表现出同步,有时表现出“异步“
setState 异步并不是说内部代码由异步代码实现,其实本身执行过程和代码都是同步的,只是合成事件和钩子函数的调用顺序在更新之前;在异步更新中,多次setState后面的值会覆盖前面的;
react事件与原生事件最好不要混用
stopProagation
方法,则会导致其他 react 事件失效,因为所有元素的事件将无法冒泡到 document上