
react
文章平均质量分 61
皮皮和小岸
这个作者很懒,什么都没留下…
展开
-
VUE逐步向REACT迁移
VUE逐步向REACT迁移###【背景】统一前端技术栈,减少项目切换和维护成本。基础技术建设无法开展,业务和技术组件无法复用,一个技术方案会重复造轮子###【需求】统一技术栈,降低维护成本完善技术生态,技术方案提取和复用,提高效率迁移步骤及其计划vue集成reactreact使用vuex数据流样式隔离组件逐步迁移按路由级别逐步迁移页面页面迁移完毕之后,整体迁移vuex到redux干掉vue以及vuextips:1.第4步和第5步同时进行2.笔者目前正在第4/5原创 2021-05-11 11:23:51 · 1381 阅读 · 1 评论 -
React中的错误捕获和上报
错误边界介绍部分 UI 中的 JavaScript 错误不应该破坏整个应用程序。 为了解决 React 用户的这个问题,React 16引入了一个 “错误边界(Error Boundaries)” 的新概念。错误边界是 React 组件,它可以在子组件树的任何位置捕获 JavaScript 错误,记录这些错误,并显示一个备用 UI ,而不是使整个组件树崩溃。 错误边界(Error Boundaries) 在渲染,生命周期方法以及整个组件树下的构造函数中捕获错误。使用方法如果一个类组件定义了生命周期方原创 2021-05-07 09:57:37 · 1747 阅读 · 0 评论 -
05.enqueueUpdate
Update创建update的时机在03章节中提到过,位于scheduleRootUpdate这个函数中const update = createUpdate(expirationTime);export type Update<State> = { expirationTime: ExpirationTime,//过期时间 // export const UpdateState = 0; // export const ReplaceState = 1; // expo原创 2021-05-07 09:48:18 · 379 阅读 · 0 评论 -
04.ExpirationTime计算
ExpirationTime计算规则react主要把到期时间分为两种:异步任务到期时间与交互工作的到期时间。react的到期时间与系统的时间ms不是1:1的关系,低优先级异步任务的两个时间间隔相差不到250ms(相当于25单位的 到期时间)的任务会被设置为同一个到期时间,交互异步任务间隔100ms(相当于10个单位的 到期时间),因此减少了一些不必要的组件渲染,并且保证交互可以及时响应。ExpirationTime的作用在react中,为了防止某个update因为优先级的原因一直被打断而不能执行。re原创 2021-05-07 09:43:22 · 928 阅读 · 2 评论 -
03.ReactDOM.render
ReactDOM.render上文说的是把jsx转换成VDom而ReactDom.render则是把VDom渲染成真实的Dom节点(本篇幅只涉及到渲染,没有涉及到更新、调度等等)我们在写react的时候,写到最后一步肯定是ReactDom.render,比如ReactDOM.render(<App name='app' />, document.getElementById('app'));把<App />解析成VdomReactDOM.render(React.cre原创 2021-05-07 09:42:50 · 1062 阅读 · 0 评论 -
02.React中的数据结构
FiberRoot{| // 页面上挂载的dom节点, 就是render方法接收的第二个参数 containerInfo: any, // 只有在持久更新中会用到,也就是不支持增量更新的平台,react-dom不会用到 pendingChildren: any, // 当前树的根节点,就是FiberRoot current: Fiber, // 以下的优先级是用来区分 // 1、没有提交(committed)的任务 // 2、没有提交的挂起的任务 // 3、没有提原创 2021-05-07 09:42:03 · 498 阅读 · 0 评论 -
01.从jsx到react的虚拟dom对象
背景页面A是企业列表页,页面B是企业详情面。页面B上面更新了企业信息,需要通知给页面A,同时更新列表中的企业信息postMessage在做这个需求的时候,最先考虑到的就是 postMessage 。这个方法可以安全的实现跨源通信,从广义上讲,一个窗口可以获得对另一个窗口的引用(比如 targetWindow=window.opener),然后再窗口上调用 targetWindow.postMessage() 来发送一个Message消息。实现第一步是获取 window 对象const targe原创 2021-05-07 09:27:21 · 145 阅读 · 0 评论