- 博客(23)
- 收藏
- 关注
原创 vuex和pinia的区别?
Vuex 和 Pinia 是 Vue.js 的两种状态管理库,它们都用于管理 Vue 应用的状态,但有一些关键的区别。
2024-08-21 10:01:56
1640
原创 什么是尾递归?尾递归和常规递归的区别?
尾递归的递归调用是函数的最后操作,通常可以进行栈优化。常规递归可能在递归调用后还有其他计算,导致额外的栈开销和潜在的栈溢出问题。
2024-08-10 11:21:40
341
原创 区分回流和重绘,并举例说明两者触发的条件
回流是指浏览器为了重新渲染部分或全部页面布局而进行的计算过程。当页面中的部分或全部元素的尺寸、结构、布局、隐藏状态等发生变化时,浏览器需要重新计算元素的几何属性(例如位置、大小、布局)并重新构建渲染树(Render Tree),这个过程就称为回流。回流的成本较高,会触发浏览器重新布局,因此应尽量避免过于频繁的触发。重绘是指浏览器根据元素的样式变化(如颜色、背景等)重新绘制元素的过程,但是元素的几何属性没有发生变化,即不会影响到布局。重绘比回流消耗的性能较少,因为它只涉及到样式的变化,不需要重新计算布局。
2024-08-08 14:09:14
281
原创 如何使用 Promise.all() 和 Promise.race(),它们分别适用于什么场景?
和是 ES6 中提供的两个用于处理多个 Promise 的工具函数,它们在处理异步操作时非常有用。
2024-08-01 15:23:16
488
原创 原型链是如何工作的,并给出一个例子
原型链是 JavaScript 中实现对象继承的一种机制。在 JavaScript 中,每个对象都有一个原型对象(prototype),对象可以从其原型对象继承属性和方法。这种继承关系形成了一个链式结构,即原型链。
2024-08-01 15:18:53
304
原创 React 组件之间如何通信?
React 组件之间的通信通常通过 props 和回调函数来实现。这种方式简单、直观,并且符合 React 的单向数据流的设计理念。根据具体的需求和场景,可以选择合适的方法来实现组件之间的通信。
2024-08-01 15:17:24
319
原创 React的props.children使用map函数来遍历会收到异常显示,为什么?应该如何遍历?
在 React 中,可能包含单个子节点(例如一个元素或一个文本节点),也可能是一个包含多个子节点的数组。如果要对进行遍历操作,通常可以使用方法来处理,而不是直接使用map()函数。
2024-07-29 09:50:30
281
原创 Redux中同步 action 与异步 action最大的区别?
同步 action是一个简单的对象,用于描述直接的状态变更或用户交互。异步 action是一个返回函数的 action creator,允许在其中执行异步操作,并最终 dispatch 一个同步 action。选择使用同步 action 还是异步 action 取决于具体的场景和需求。通常情况下,当需要执行异步操作或处理复杂的逻辑时,应该使用异步 action,而对于简单的状态更新,则可以使用同步 action。
2024-07-29 09:48:47
704
原创 React render方法的原理,在什么时候会触发?
React 中的render方法是组件生命周期中的一个重要方法,负责根据组件的状态(state)和属性(props)来生成虚拟 DOM,并最终将其渲染到真实 DOM 中。
2024-07-29 09:46:49
481
原创 说说你对@reduxjs/toolkit的理解?和react-redux有什么区别?
是一个官方推荐的 Redux 工具包,旨在简化 Redux 的使用和提高开发效率。它集成了一些常用的 Redux 中间件和工具,包括创建 Redux store、编写 reducers、生成 action creators 等。等 React hooks,用于在 React 组件中访问 Redux store 中的 state 和 dispatch action。则提供了在 React 中使用 Redux 的一些便捷方式和工具。可以让 Redux 的使用更加简洁和高效,同时仍然需要结合。
2024-07-29 09:46:00
274
原创 前端跨域的解决方式?
前端跨域(Cross-Origin Resource Sharing, CORS)是指浏览器出于安全考虑,限制了在一个域名下的前端页面去请求另一个域名下的资源。跨域问题常见于前后端分离开发或者不同子域之间的数据交互。选择合适的跨域解决方式应根据具体的场景和技术架构来确定,通常推荐使用 CORS 来处理现代 Web 应用中的跨域问题,因为它安全且支持灵活的配置。
2024-07-29 09:45:05
318
原创 短轮询、长轮询和websocket的区别?
短轮询适合对实时性要求不高的场景,简单易实现,但可能造成资源浪费和延迟。长轮询通过减少无效请求次数,提升了实时性,适合需要即时更新但不支持 WebSocket 的环境。WebSocket适合需要实时双向通信的应用,能显著提升实时性和性能,但实现相对复杂且需要服务器和客户端的支持。根据具体需求和技术环境选择合适的通信方式,可以有效提升系统的效率和用户体验。
2024-07-29 09:44:15
512
原创 说说你对redux中间件的理解?常用的中间件有哪些?实现原理?
Redux 中间件是一个扩展点,它提供了一个第三方插件机制,可以在 Redux 的dispatch调用和 reducer 执行之间,对 action 进行拦截、转换或者延迟处理。中间件允许我们在应用中引入非常复杂的行为,例如异步 action、日志记录、崩溃报告、路由跳转等。
2024-07-29 09:37:48
361
原创 说说你对fiber架构的理解?解决了什么问题?
Fiber 架构是 React 16 引入的一种新的协调算法,用于实现虚拟 DOM 的增量渲染。它解决了 React 在处理大型应用或复杂组件树时可能遇到的性能问题和用户体验问题。
2024-07-29 09:36:10
394
原创 React有哪些优化性能的手段?
这些优化手段可以帮助开发者有效地提升 React 应用的性能表现,特别是在处理大规模数据、复杂交互和频繁更新的场景下尤为重要。
2024-07-29 09:34:38
614
原创 为什么 react 元素会有一个$$type属性?
在 React 中,元素对象(Element)是描述 UI 的普通 JavaScript 对象。每个 React 元素都是通过调用或 JSX 语法创建的。React 元素对象有一个内部属性$$typeof,而不是$$type。这个属性是 React 内部使用的,它的作用是标识该对象是一个 React 元素(React Element),而不是普通的 JavaScript 对象。
2024-07-29 09:33:33
346
原创 React合成事件的原理,有什么好处和优势?
React 合成事件(SyntheticEvent)是 React 提供的一种封装了浏览器原生事件的跨浏览器事件系统。
2024-07-29 09:32:37
536
原创 说说redux的工作流程。
在这个流程中,Redux 的核心思想是单向数据流。整个应用的状态被集中管理在一个单一的 Store 中,通过派发 Action 和使用 Reducer 来修改状态。这种设计模式使得状态变化更加可控和可预测,有助于开发复杂的应用程序时保持代码的清晰和结构的良好组织。Redux 是一个用于 JavaScript 应用程序的状态管理库,它通常与 React 结合使用,但也可以与其他视图库或框架一起工作。
2024-07-29 09:31:25
284
原创 说说css3的新特性有哪些?
这些新特性使得 CSS3 成为设计和开发现代网页所必需的强大工具,提供了更大的灵活性和控制力,同时降低了对复杂的 JavaScript 或图像处理的依赖。CSS3 引入了许多新特性,通过这些特性可以实现更丰富和更动态的页面样式和交互效果。
2024-07-29 09:29:20
376
原创 调和阶段setState干了什么?
方法不仅仅是更新组件的状态,它还触发了 React 的调和过程,确保视图与最新的状态保持一致。这种机制使得 React 能够高效地管理组件状态和更新,提升应用的性能和用户体验。方法时,它会触发 React 的调和(reconciliation)过程,这是 React 用来更新界面的核心机制之一。在 React 中,当你调用。
2024-07-29 09:27:25
157
原创 说说React 生命周期中有哪些坑?为什么要移除will相关生命周期?
在 React 生命周期中,确实存在一些容易引起混淆或使用不当的“坑”,特别是涉及到旧版生命周期方法(如等)的时候。这些问题主要是由于 React 的更新机制和推荐做法的变化所导致的。
2024-07-26 21:31:05
297
原创 Real diff 算法是怎么运作的?从tree层到component层到element层。
React 中的 PureComponent 或手动编写的 shouldComponentUpdate 方法用于比较组件的 props 和 state 是否发生变化,决定是否需要更新组件。:根据在 Tree 层和 Component 层的比较中确定的需要进行的操作(新增、删除、更新),生成最小的 DOM 操作指令队列。:React 还使用了一些优化策略,如利用 key 属性优化列表渲染时的更新效率,确保尽可能少的 DOM 操作。:标记节点为新增、删除或更新,确定需要进行哪些具体的 DOM 操作。
2024-07-26 21:00:37
213
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人