不知答案尚可求,不知问题何以谋。
#React #文章 Epic React 的博客文章,对于useSyncExternalStore的完整概述和用法
https://www.epicreact.dev/use-sync-external-store-demystified-for-practical-react-development-w5ac0
https://www.epicreact.dev/use-sync-external-store-demystified-for-practical-react-development-w5ac0
#React #文章 本文探讨了如何将搜索参数作为路由状态的一部分进行管理,强调了 TanStack Router 通过在路由层定义搜索参数模式,实现了类型安全、可验证且响应式的搜索参数处理,解决了传统方法中搜索参数管理的碎片化和不一致性问题。
https://tanstack.com/blog/search-params-are-state
https://tanstack.com/blog/search-params-are-state
#AI #3D #文章 #React 结合React Three Fiber、Three.js和Rapier,创建一个基于物理的第三人称角色控制器。
https://tympanus.net/codrops/2025/05/28/building-a-physics-based-character-controller-with-the-help-of-ai/
https://tympanus.net/codrops/2025/05/28/building-a-physics-based-character-controller-with-the-help-of-ai/
#React #文章 专治焦点管理问题,flushSync的用武之地。
https://www.epicreact.dev/mastering-focus-management-in-react-with-flush-sync-f5b38
https://www.epicreact.dev/mastering-focus-management-in-react-with-flush-sync-f5b38
#原理 #React #文章 React Context 并不会造成非必要重新渲染,实际上更严格的说法应该是使用同一个 Provider 的 context 会重新渲染。不推荐的原因更多是 Provider 的嵌套地狱。
关于`父组件重新渲染会导致所有子组件重新渲染`的说法也进行了重新验证,直接将组件引入作为子组件会随着父组件的 state 变化而重新渲染,但是通过 props.children 的形式引入并不会。
根据这两个特性,就会知道全局状态管理带来的好处,也可以了解为什么很多公司拆分组件并且代码行数有要求。因为子组件越多,如果父组件受控状态时常变化,会导致子组件的重新渲染。
https://blacksheepcode.com/posts/no_react_context_is_not_causing_too_many_renders
关于`父组件重新渲染会导致所有子组件重新渲染`的说法也进行了重新验证,直接将组件引入作为子组件会随着父组件的 state 变化而重新渲染,但是通过 props.children 的形式引入并不会。
根据这两个特性,就会知道全局状态管理带来的好处,也可以了解为什么很多公司拆分组件并且代码行数有要求。因为子组件越多,如果父组件受控状态时常变化,会导致子组件的重新渲染。
https://blacksheepcode.com/posts/no_react_context_is_not_causing_too_many_renders
#React #原理 #文章 《理解React中父组件(parent)和拥有者组件(owner)的区别来优化上下文(Context)提供者的性能》
1.父组件与拥有者组件的区别
• 父组件是嵌套结构中包含其他组件的组件,而拥有者组件是实际渲染另一个组件的组件,理解两者的区别是优化React性能的关键。
2.React组件更新的三种原因
• 组件更新可能由自身状态变化、消费的上下文值变化或其拥有者组件重新渲染引起。
3.上下文提供者的优化
• 通过分离状态和上下文提供者到独立的自定义组件中,可以避免不必要的组件重新渲染,从而提高性能。
4.自定义上下文提供者的实现
• 使用
5.优化效果
• 通过合理的组件结构,可以减少不必要的更新,提高应用性能,而无需依赖显式的记忆化工具。
6.其他好处
• 这种模式不仅能优化上下文更新,还能使数据流更清晰、支持服务器组件,并且适用于其他优化场景。
https://julesblom.com/writing/parent-owners-context
1.父组件与拥有者组件的区别
• 父组件是嵌套结构中包含其他组件的组件,而拥有者组件是实际渲染另一个组件的组件,理解两者的区别是优化React性能的关键。
2.React组件更新的三种原因
• 组件更新可能由自身状态变化、消费的上下文值变化或其拥有者组件重新渲染引起。
3.上下文提供者的优化
• 通过分离状态和上下文提供者到独立的自定义组件中,可以避免不必要的组件重新渲染,从而提高性能。
4.自定义上下文提供者的实现
• 使用
children
属性将子组件传递到自定义上下文提供者中,确保只有依赖上下文的组件才会重新渲染。5.优化效果
• 通过合理的组件结构,可以减少不必要的更新,提高应用性能,而无需依赖显式的记忆化工具。
6.其他好处
• 这种模式不仅能优化上下文更新,还能使数据流更清晰、支持服务器组件,并且适用于其他优化场景。
https://julesblom.com/writing/parent-owners-context
#React #原理 #文章 子组件的 useEffect 会在父组件的 useEffect 之前执行,这是由于 React 的深度优先遍历算法。
https://frontendmasters.com/blog/react-internals-which-useeffect-runs-first/
https://frontendmasters.com/blog/react-internals-which-useeffect-runs-first/
#React #文章 'use client' 和 'use server' 不仅仅是 React 的特性,它们代表了一种新的编程范式,可能会对未来的前端和后端开发产生深远影响。通过这两个指令,开发者可以更自然地构建跨网络的应用程序,同时保持代码的清晰性和可维护性。
https://overreacted.io/what-does-use-client-do/
https://overreacted.io/what-does-use-client-do/
#React #文章 SVG懒加载:svg 精灵图方法来优化性能
https://www.jeantinland.com/blog/lazy-load-svg-icons-with-use-react-js/
https://www.jeantinland.com/blog/lazy-load-svg-icons-with-use-react-js/
#React #文章 “分层 React 结构”(Layered React Structure,简称 LRS)是一种经过实践验证的 React 项目组织方式,可以帮助开发者更好地管理大型项目。它通过明确的分层和组件职责划分,提高了代码的可维护性和可扩展性。如果你正在寻找一种更系统的方式来组织你的 React 项目,LRS 值得一试。
值得注意:文章提到了文件命名的方式,推荐是`kebob-case`
https://playfulprogramming.com/posts/layered-react-structure
值得注意:文章提到了文件命名的方式,推荐是`kebob-case`
https://playfulprogramming.com/posts/layered-react-structure
#React #文章 RSC 处理 toast 信息,用到了cookies 。
https://buildui.com/posts/toast-messages-in-react-server-components
https://buildui.com/posts/toast-messages-in-react-server-components
#React #文章 文章总结了理解React的协调算法对于理解许多React性能模式的原因至关重要。它解释了为什么组合效果良好、为什么列表需要键,以及为什么在其他组件内定义组件是有问题的。这种知识有助于我们做出更好的架构决策,从而自然地导致性能良好的React应用程序。
https://cekrem.github.io/posts/react-reconciliation-deep-dive/
https://cekrem.github.io/posts/react-reconciliation-deep-dive/
#React #文章 作者所在团队开发了名为Smelter的工具,它利用React语法简化了直播流合成过程。文章以构建一个简单的Twitch游戏直播为例,详细说明了如何使用Smelter实现包括游戏视频背景、摄像头显示、文本显示以及全屏过渡等功能,并对比了Smelter与FFmpeg、Chromium等传统工具的优劣。Smelter易于维护,可嵌入React应用,并支持多种输入源,为直播和视频处理提供了新的解决方案。
https://blog.swmansion.com/react-live-streaming-how-to-include-video-mixing-in-your-app-c460e09da7a8
https://blog.swmansion.com/react-live-streaming-how-to-include-video-mixing-in-your-app-c460e09da7a8
#React #文章 本文探讨了单页应用(SPA)的定义、实现方式及其存在的问题。SPA旨在通过不刷新页面来保留JavaScript状态,实现快速加载。然而,随着页面和UI的增加,SPA的bundle大小会增大,导致加载时间变长。代码分割和懒加载虽能缓解这一问题,但会引入新的数据获取延迟。文章还讨论了框架如Next.js和React Router Framework如何通过服务器端渲染(SSR)和客户端导航来解决这些问题,提供了一种SPA和多页应用(MPA)的混合解决方案。
https://reacttraining.com/blog/understanding-spas-and-their-shortcomings
https://reacttraining.com/blog/understanding-spas-and-their-shortcomings
#React #文章 本文主要对比了React单页应用(SPA)、服务器端渲染(SSR)以及React服务端组件(RSC)三种架构方式。作者指出,React团队推荐使用框架而非纯SPA,因为框架能解决SPA在性能、SEO、数据获取和架构复杂性等方面的问题。
https://reacttraining.com/blog/react-architecture-spa-ssr-rsc
https://reacttraining.com/blog/react-architecture-spa-ssr-rsc
#React #文章 根据用户的设备和网络条件提供最佳的视频格式。这种技术在性能优化方面具有显著优势,并且通过React和Dash.js可以轻松实现。
https://www.smashingmagazine.com/2025/03/adaptive-video-streaming-dashjs-react/
https://www.smashingmagazine.com/2025/03/adaptive-video-streaming-dashjs-react/
#React #文章 讨论了 vite-ssg-react ,这是尝试配置 Vite 以便我们能够使用 React 编写静态网站的方法。
https://blog.carlosn.com.br/post/writing-static-websites-with-vite-and-react/
https://blog.carlosn.com.br/post/writing-static-websites-with-vite-and-react/