React篇

React中的key时什么。有什么作用
  • 同级组件之间的信息传递:通过状态提升,将信息共同报讯在父组件中,在通过回调函数更改信息之后再用props船体给子组件;
  • 跨层级组件通信:利用高级API-content上下文的方式
  • Redux.React-redux等状态管理库结合异步请求处理redux-thunk,redux-saga
React合成事件机制
  • React中有自己的事件系统模式,通常被称为React合成事件。之所以采用这种自己定义的合成事件,一方面时为了抹平事件再不同平台体现出来的差异性,这使得React开发者不需要自己再去关注浏览器事件兼容性问题;另一方面是为了统一管理事件,提高性能,这主要体现在React内部实现事件委托,并且记录当前事件发生的状态上;
  • 事件委托,也就是我们通常提到的事件代理机制,这种机制不会把事件函数直接绑定在真实的结点上,而是把所有的事件绑定到结构的最外层,使用统一的事件监听和处理函数。
  • 当组件挂载或者卸载时,只是在这个统一的事件监听器上插入或者删除一些对象;
  • 当事件放生时,首先被这个统一的事件监听器处理,然后再映射表里找到真正的事件处理函数并调用。这样做简化了事件处理和回收机制。效率也有恨到的提升。
  • 记录当前事件发生的状态,即记录事件执行的上下文,这便于React来处理不同事件的优先级,达到谁优先级高先处理谁的目的,这里也就实现了React的增量渲染思想,可以预防掉帧,同事达到页面更加顺滑的目的,提升用户体样。
细读setState
  • setState(updater,[callback])
  • class组件有什么弊端,为什么要引入hook
  • 在组件之间复用逻辑很难
  • 复杂组件变得难以理解
  • 难以理解的class
  • 引入了hook之后的函数组件发生了哪些变化
  • 函数组件可以存储和改变状态值(useState, useReducer),可以执行副作用(useEffect,useLayoutEffect),还可以服用状态逻辑(自定义hook)
  • 函数组件与class组件如何选择
  • 出现以上缺点的情况下都适合使用函数组件,函数组件与class组件无缝对接
React性能优化方案
  • 减少不惜要渲染,如用shouldCoponentUpdate,PureComponent,React.memo实现
  • 数据缓存:
  • useMomo缓存参数,useCallback缓存函数
  • 函数,对象尽量不要使用内联形式(如context的value object,refs function)
  • Route中的内联函数渲染时候使用render或者children,不要使用component,当你用compnent的时候,Router会用指定的组件和React.createElement创建一个新的[React elemet]。这意味着当你提供的是一个内联函数的时候,每次创建render都会创建。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
React和Mobx是一对非常强大的组合,可以通过它们来构建可扩展和可维护的应用程序。 首先,你需要安装mobx和mobx-react库。你可以使用npm命令来安装它们:`npm install mobx mobx-react --save`。 接下来,你需要在你的React组件中引入mobx-react的`observer`方法。你可以使用import语句来引入:`import { observer } from "mobx-react";`。 一旦你引入了`observer`方法,你就可以将它应用到你的React组件上,这样组件就能够观察mobx的状态变化并自动更新视图。你只需要在组件的定义前加上`@observer`装饰器即可。 通过将mobx的状态存储在store中,你可以在组件中使用mobx提供的装饰器和函数来访问和修改状态。当状态发生变化时,mobx会自动更新组件的视图。 React和Mobx的配合使得你可以轻松地管理和响应应用程序的状态变化。你可以使用mobx的观察者模式来追踪状态的变化,并在需要的时候自动更新组件的视图。 总结起来,React和Mobx的配合是一种非常强大的方式,可以帮助你构建可扩展和可维护的应用程序。你可以使用mobx来管理状态,并使用mobx-react来观察状态的变化并更新组件的视图。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [React + MobX 快速上手](https://blog.csdn.net/weixin_42333548/article/details/107812048)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [一文章让你认识React的Mobx!](https://blog.csdn.net/dyyay521/article/details/125525061)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值