框架与类库:React
How to build stunning 3D scenes with React Three Fiber
WebGL is the magic sauce behind Solar Storm , an audio-reactive music video that renders live in the browser. After fumbling around with…
【译】什么时候使用 useMemo 和 useCallback
原文:When to useMemo and useCallback 性能优化总是会有成本,但并不总是带来好处。我们来谈谈 useMemo 和 useCallback 的成本和收益。
Common React Hooks Mistakes You Should Avoid
React Hook feature was first introduced on React 16.8 update and became immensely popular among developers due to its capabilities. It allows you to hook into React state and lifecycle features. And, sometimes, it could be challenging when using it for advanced use cases.
In this article, I’ll discuss 5 common React Hooks mistakes every developer should avoid when building robust React applications.
You can use React Query for slow computation, not just API
React Query brings the ergonomics of GraphQL clients to RESTful APIs. It scratched my itch.
Getting a whole company onto a new way of writing the API layer is hard and there's real work to do. React Query offers the perfect middle ground.
Keep the RESTful API you're used to, get the request deduping, data caching, loading states, re-fetching, and hooks ergonomics you dream of. ?
You can use those same ergonomics for any slow operation. Doesn't have to be an API call.
Relyzer —— 一个 React FC 的运行分析工具
React Hooks 带来了很多好处,同时也引入了一些困扰。常见的问题有: 为什么我的 useEffect 比我预期执行多得多?为什么 useCallback / useMemo 的返回值总是发生变化?
于是开发了这样的一个工具,配合 React Devtool 使用,在代码块中可视化地展示出 React 函数组件的属性及内部变量的变化情况,可以方便地定位到哪些值总是在发生变化。
如何优雅地在React 中使用TypeScript,看这一篇就够了!
在单独使用 TypeScript 时没有太多的坑,不过和React结合之后就会复杂很多。本文就来聊一聊TypeScript与React一起使用时经常遇到的一些类型定义的问题。
基于Fiber的React Diff算法源码分析
本文从源码角度就全新的React Fiber架构和大家聊一聊Diff算法。
通过与React的简单对比来入门Flutter
如果熟悉React的话,你在使用Flutter的时候肯定会充满即视感,其实这一点也不奇怪,实际上Flutter官方就提到在设计Flutter时受到了React的影响。对于熟悉React的前端开发人员来说,从与React对比开始入门想必是相对来说比较轻松的一个方式。
Flutter与React,两者都作为一个声明式UI框架,都遵循UI = f(state)的理念,加之Flutter本身就参考了React,所以两者有大量相似的地方。下面我们从编写一个经典前端入门应用Todo List开始我们的Flutter之路。
奇葩说框架之React渲染流程解析
本文主要讲两部分内容,一是介绍大致的render函数执行的主流程,包括挂载和渲染jsx节点,对内部调用的函数进行讲解;另一个是细化render阶段做的一些重要内容,包括Fiber的内部计算和任务调度的相关内容。
使用 React Hooks 实现仿石墨的图片预览插件
最近工作中需要制作一个图片预览的插件,在参考了很多产品(掘金、知乎、简书、石墨等)的图片预览之后,最终还是觉得石墨的比较符合我们的产品需求。
本来以为能在社区中找到相关插件,但想法美好,现实却很骨感,于是便决定自己手撸一个,顺便也学习一下组件的开发流程。
使用 React 为 Chimee 开发插件
使用 React 开发插件解决了事件和数据绑定的问题,Chimee 的插件系统可扩展性比较强,如果对其比较感兴趣的可以看看官方的这篇《为什么要将 Chimee 设计成一个组件化框架?》。
奇葩说框架之React编译原理
都说JSX会被babel编译成React.createElement方法,那它具体是怎么实现的呢?在React17版本中,又做了哪些改进呢?带着这些问题,我们去React的源码世界里去一探究竟!
React Concurrent Mode 初识&探秘
在使用 React 之前,不知道小伙伴们有没有遇到过 更新卡顿 的问题,如下为 React 应用更新时的火焰图,JS 执行 287 ms 后,渲染任务才开始(25.4ms)。
主流浏览器刷新频率为 60Hz,即每 16.6ms 浏览器刷新一次,每 16.6ms 要完成 JS 执行、重绘重排。而 JS 线程和 GUI 线程是互斥的,在浏览器的一帧里(16.6ms)JS 脚本执行和页面渲染是同步执行的,一旦 JS 脚本执行时间过长,页面就会出现掉帧卡顿。
为了减少 JS 脚本执行的时长,React 重写了架构来解决卡顿问题。
How to Detect Slow Renders in React?
Improving React app performance often comes down to finding bottlenecks and fixing them. One well-placed memoization can make a slow app fast again. But how to find performance bottlenecks?
各流派 React 状态管理对比和原理实现
在 React 诞生之初,Facebook 宣传这是一个用于前端开发的界面库。在大型应用中,如何处理好 React 组件通信和状态管理就显得非常重要。
为了解决这一问题,Facebook 最先提出了单向数据流的 Flux 架构,弥补 React 开发大型网站的不足。后续社区里又出现了一系列的前端状态管理解决方案。
本文会对 Redux、Mobx、Recoil 等几个状态管理方案进行深入到原理的介绍,并会给每个库都配一个 todomvc 的例子来对比。
奇葩说框架之 react组件及逻辑复用
代码逻辑复用 是我们开发人员减少代码重复度,进行代码优化的一个重要因素,上期我们的同学分享了关于 Vue 框架的相关逻辑复用的方法及原理,本期我们一起来了解下 React 框架中的逻辑复用。