41554 blogs · [ { "id": "01a08743-e73f-7046-a89f-1341f0b43b89", "title": "My React Talks to Date in Various Formats", "url": "https://blog.axlight.com/posts/my-react-talks-to-date-in-various-formats/", "published_at": "2025-10-17T16:00:00+00:00" }, { "id": "01a08743-e73f-7046-a89f-1341f1095375", "title": "Thoughts on State Management Libraries in the React Compiler Era", "url": "https://blog.axlight.com/posts/thoughts-on-state-management-libraries-in-the-react-compiler-era/", "published_at": "2025-01-07T13:00:00+00:00" }, { "id": "01a08743-e740-731c-86ab-2730f9be2255", "title": "Thoughts on What RSC Means for SPAs", "url": "https://blog.axlight.com/posts/thoughts-on-what-rsc-means-for-spas/", "published_at": "2024-11-26T12:00:00+00:00" }, { "id": "01a08743-e740-731c-86ab-2730fa7764a4", "title": "How I Got Involved in OSS", "url": "https://blog.axlight.com/posts/how-i-got-involved-in-oss/", "published_at": "2024-09-03T13:00:00+00:00" }, { "id": "01a08743-e740-731c-86ab-2730faf1afe4", "title": "How Valtio Was Born", "url": "https://blog.axlight.com/posts/how-valtio-was-born/", "published_at": "2024-08-18T12:00:00+00:00" }, { "id": "01a08743-e740-731c-86ab-2730fbe62e4f", "title": "How Jotai Was Born", "url": "https://blog.axlight.com/posts/how-jotai-was-born/", "published_at": "2024-08-09T13:00:00+00:00" }, { "id": "01a08743-e740-731c-86ab-2730fc6f52e2", "title": "How Zustand Was Born", "url": "https://blog.axlight.com/posts/how-zustand-was-born/", "published_at": "2024-07-14T04:00:00+00:00" }, { "id": "01a08743-e740-731c-86ab-2730fcd17929", "title": "Jotai Tips", "url": "https://blog.axlight.com/posts/jotai-tips/", "published_at": "2024-04-03T14:00:00+00:00" }, { "id": "01a08743-e740-731c-86ab-2730fdaa7d5b", "title": "Why useSyncExternalStore Is Not Used in Jotai", "url": "https://blog.axlight.com/posts/why-use-sync-external-store-is-not-used-in-jotai/", "published_at": "2023-10-28T02:00:00+00:00" }, { "id": "01a08743-e740-731c-86ab-2730fe157973", "title": "How to Use Jotai and useTransition for Mutation", "url": "https://blog.axlight.com/posts/how-to-use-jotai-and-use-transition-for-mutation/", "published_at": "2023-07-27T16:00:00+00:00" }, { "id": "01a08743-e740-731c-86ab-2730ff0d4701", "title": "Why Zustand Typescript Implementation Is So Ugly", "url": "https://blog.axlight.com/posts/why-zustand-typescript-implementation-is-so-ugly/", "published_at": "2023-07-19T06:00:00+00:00" }, { "id": "01a08743-e740-731c-86ab-2730ffd9d09e", "title": "Why You Don't Need Signals in React", "url": "https://blog.axlight.com/posts/why-you-dont-need-signals-in-react/", "published_at": "2023-04-23T12:00:00+00:00" }, { "id": "01a08743-e740-731c-86ab-2730ffe93ddf", "title": "Demystifying Create React Signals Internals", "url": "https://blog.axlight.com/posts/demystifying-create-react-signals-internals/", "published_at": "2023-02-26T14:00:00+00:00" }, { "id": "01a08743-e740-731c-86ab-273100b871c2", "title": "You Might Not Need React Query for Jotai", "url": "https://blog.axlight.com/posts/you-might-not-need-react-query-for-jotai/", "published_at": "2023-01-31T05:00:00+00:00" }, { "id": "01a08743-e740-731c-86ab-2731015b5dfc", "title": "Why We Need Jotai v2 API", "url": "https://blog.axlight.com/posts/why-we-need-jotai-v2-api/", "published_at": "2022-12-06T05:00:00+00:00" }, { "id": "01a08743-e740-731c-86ab-273101f3d236", "title": "How Jotai Specifies Package Entry Points", "url": "https://blog.axlight.com/posts/how-jotai-specifies-package-entry-points/", "published_at": "2022-04-17T08:00:00+00:00" }, { "id": "01a08743-e740-731c-86ab-27310275111a", "title": "When I Use Valtio and When I Use Jotai", "url": "https://blog.axlight.com/posts/when-i-use-valtio-and-when-i-use-jotai/", "published_at": "2022-01-30T09:00:00+00:00" }, { "id": "01a08743-e740-731c-86ab-27310324677a", "title": "How Valtio Proxy State Works (React Part)", "url": "https://blog.axlight.com/posts/how-valtio-proxy-state-works-react-part/", "published_at": "2021-12-26T13:00:00+00:00" }, { "id": "01a08743-e740-731c-86ab-27310386325a", "title": "Learning React State Manager Jotai With 7GUIS Tasks", "url": "https://blog.axlight.com/posts/learning-react-state-manager-jotai-with-7guis-tasks/", "published_at": "2021-09-13T11:23:30+00:00" }, { "id": "01a08743-e740-731c-86ab-27310467cff0", "title": "How Valtio Proxy State Works (Vanilla Part)", "url": "https://blog.axlight.com/posts/how-valtio-proxy-state-works-vanilla-part/", "published_at": "2021-08-27T13:00:00+00:00" }, { "id": "01a08743-e740-731c-86ab-27310538537e", "title": "Testing Global State Libraries With React 18 Alpha Concurrent Rendering", "url": "https://blog.axlight.com/posts/testing-global-state-libraries-with-react-18-alpha-concurrent-rendering/", "published_at": "2021-06-10T12:00:00+00:00" }, { "id": "01a08743-e740-731c-86ab-27310575cd48", "title": "Developing a Memoization Library With Proxies", "url": "https://blog.axlight.com/posts/developing-a-memoization-library-with-proxies/", "published_at": "2020-11-29T05:00:00+00:00" }, { "id": "01a08743-e740-731c-86ab-2731060109a1", "title": "Developing React Global State Library With Atom Abstraction", "url": "https://blog.axlight.com/posts/developing-react-global-state-library-with-atom-abstraction/", "published_at": "2020-08-12T23:00:00+00:00" }, { "id": "01a08743-e740-731c-86ab-273106c9e7d4", "title": "Redux in Worker: Off-main-thread Redux Reducers and Middleware", "url": "https://blog.axlight.com/posts/redux-in-worker-off-main-thread-redux-reducers-and-middleware/", "published_at": "2020-03-29T11:00:00+00:00" }, { "id": "01a08743-e740-731c-86ab-273106eca30f", "title": "Steps to Develop Global State for React With Hooks Without Context", "url": "https://blog.axlight.com/posts/steps-to-develop-global-state-for-react/", "published_at": "2020-02-18T14:00:00+00:00" }, { "id": "01a08743-e740-731c-86ab-273107bcf08e", "title": "Lazy Load Apollo Link in Apollo Client", "url": "https://blog.axlight.com/posts/lazy-load-apollo-link-in-apollo-client/", "published_at": "2020-01-10T14:00:00+00:00" }, { "id": "01a08743-e740-731c-86ab-27310836833a", "title": "How to Handle Async Actions for Global State With React Hooks and Context", "url": "https://blog.axlight.com/posts/how-to-handle-async-actions-for-global-state-with-react-hooks-and-context/", "published_at": "2019-12-20T14:00:00+00:00" }, { "id": "01a08743-e740-731c-86ab-2731091a6fb7", "title": "Diving Into React Suspense Render-as-You-Fetch for REST APIs", "url": "https://blog.axlight.com/posts/diving-into-react-suspense-render-as-you-fetch-for-rest-apis/", "published_at": "2019-12-16T13:00:00+00:00" }, { "id": "01a08743-e740-731c-86ab-2731098bfb54", "title": "Developing a React Library for Suspense for Data Fetching in Concurrent Mode", "url": "https://blog.axlight.com/posts/developing-a-react-library-for-suspense-for-data-fetching-in-concurrent-mode/", "published_at": "2019-11-03T12:00:00+00:00" }, { "id": "01a08743-e740-731c-86ab-27310991bb11", "title": "React Tracked Documentation Website with Docusaurus v2", "url": "https://blog.axlight.com/posts/react-tracked-documentation-website-with-docusaurus-v2/", "published_at": "2019-10-15T14:00:00+00:00" }, { "id": "01a08743-e740-731c-86ab-27310a8dd590", "title": "Off-main-thread React Redux with Performance", "url": "https://blog.axlight.com/posts/off-main-thread-react-redux-with-performance/", "published_at": "2019-09-16T02:00:00+00:00" }, { "id": "01a08743-e740-731c-86ab-27310aff1f6c", "title": "How I Developed React Hooks for Web Workers", "url": "https://blog.axlight.com/posts/how-i-developed-react-hooks-for-web-workers/", "published_at": "2019-09-08T07:00:00+00:00" }, { "id": "01a08743-e740-731c-86ab-27310bfd0f14", "title": "4 options to prevent extra rerenders with React context", "url": "https://blog.axlight.com/posts/4-options-to-prevent-extra-rerenders-with-react-context/", "published_at": "2019-08-21T12:00:00+00:00" }, { "id": "01a08743-e740-731c-86ab-27310c440017", "title": "React hooks-oriented Redux coding pattern without thunks and action creators", "url": "https://blog.axlight.com/posts/react-hooks-oriented-redux-coding-pattern-without-thunks-and-action-creators/", "published_at": "2019-08-12T01:00:00+00:00" }, { "id": "01a08743-e740-731c-86ab-27310c7de7c7", "title": "How I developed a Concurrent Mode friendly library for React Redux", "url": "https://blog.axlight.com/posts/how-i-developed-a-concurrent-mode-friendly-library-for-react-redux/", "published_at": "2019-07-27T14:00:00+00:00" }, { "id": "01a08743-e740-731c-86ab-27310d676f71", "title": "Effortless render optimization with state usage tracking with React hooks", "url": "https://blog.axlight.com/posts/effortless-render-optimization-with-state-usage-tracking-with-react-hooks/", "published_at": "2019-07-21T04:00:00+00:00" }, { "id": "01a08743-e741-7221-9656-f487c95d284c", "title": "How to use react-tracked: React hooks-oriented Todo List example", "url": "https://blog.axlight.com/posts/how-to-use-react-tracked-react-hooks-oriented-todo-list-example/", "published_at": "2019-07-07T16:00:00+00:00" }, { "id": "01a08743-e741-7221-9656-f487c96ccee2", "title": "What is state usage tracking? A novel approach to intuitive and performant global state with React hooks and Proxy", "url": "https://blog.axlight.com/posts/what-is-state-usage-tracking-a-novel-approach-to-intuitive-and-performant-api-with-react-hooks-and-proxy/", "published_at": "2019-07-07T08:00:00+00:00" }, { "id": "01a08743-e741-7221-9656-f487ca684e12", "title": "Four different approaches to non-Redux global state libraries", "url": "https://blog.axlight.com/posts/four-different-approaches-to-non-redux-global-state-libraries/", "published_at": "2019-07-06T07:19:00+00:00" }, { "id": "01a08743-e741-7221-9656-f487cabee7c1", "title": "React hooks useState and useReducer are equivalent in theoretical expressiveness", "url": "https://blog.axlight.com/posts/react-hooks-usestate-and-usereducer-are-equivalent-in-theoretical-expressiveness/", "published_at": "2019-06-30T23:00:00+00:00" }, { "id": "01a08743-e741-7221-9656-f487cb897853", "title": "Redux-less context-based useSelector hook that has same performance as React-Redux", "url": "https://blog.axlight.com/posts/benchmark-react-tracked/", "published_at": "2019-06-16T14:00:00+00:00" }, { "id": "01a08743-e741-7221-9656-f487cc35918a", "title": "Super performant global state with React context and hooks", "url": "https://blog.axlight.com/posts/super-performant-global-state-with-react-context-and-hooks/", "published_at": "2019-06-15T14:00:00+00:00" }, { "id": "01a08743-e741-7221-9656-f487cd2890ec", "title": "Redux meets hooks for non-redux users: a small concrete example with reactive-react-redux", "url": "https://blog.axlight.com/posts/redux-meets-hooks-for-non-redux-users-a-small-concrete-example-with-reactive-react-redux/", "published_at": "2019-06-03T14:00:00+00:00" }, { "id": "01a08743-e741-7221-9656-f487cda7718c", "title": "Four patterns for global state with React hooks: Context or Redux", "url": "https://blog.axlight.com/posts/four-patterns-for-global-state-with-react-hooks-context-or-redux/", "published_at": "2019-05-26T15:50:00+00:00" }, { "id": "01a08743-e741-7221-9656-f487cdc2a624", "title": "Benchmark the alpha-released hooks API in React Redux with alternatives", "url": "https://blog.axlight.com/posts/benchmark-alpha-released-hooks-api-in-react-redux-with-alternatives/", "published_at": "2019-05-02T03:00:00+00:00" }, { "id": "01a08743-e741-7221-9656-f487cdfffa1f", "title": "New React Redux coding style with hooks without selectors", "url": "https://blog.axlight.com/posts/new-react-redux-coding-style-with-hooks-without-selectors/", "published_at": "2019-04-20T03:00:00+00:00" }, { "id": "01a08743-e741-7221-9656-f487cee1005f", "title": "Compose React hooks like composing React components", "url": "https://blog.axlight.com/posts/compose-react-hooks-like-composing-react-components/", "published_at": "2019-04-18T03:00:00+00:00" }, { "id": "01a08743-e741-7221-9656-f487cf9378f7", "title": "How to create React custom hooks for data fetching with useEffect", "url": "https://blog.axlight.com/posts/how-to-create-react-custom-hooks-for-data-fetching-with-useeffect/", "published_at": "2019-04-03T03:00:00+00:00" }, { "id": "01a08743-e741-7221-9656-f487d07c2e76", "title": "How to properly use the React useRef hook in Concurrent Mode", "url": "https://blog.axlight.com/posts/how-to-properly-use-the-react-useref-hook-in-concurrent-mode/", "published_at": "2019-03-07T03:00:00+00:00" }, { "id": "01a08743-e741-7221-9656-f487d0cf85a8", "title": "useFetch: React custom hook for Fetch API with Suspense and Concurrent Mode in Mind", "url": "https://blog.axlight.com/posts/usefetch-react-custom-hook-for-fetch-api-with-suspense-and-concurrent-mode-in-mind/", "published_at": "2019-02-04T03:00:00+00:00" }, { "id": "01a08743-e741-7221-9656-f487d1aff80e", "title": "Playing with React Hooks and Web Workers", "url": "https://blog.axlight.com/posts/playing-with-react-hooks-and-web-workers/", "published_at": "2019-01-29T03:00:00+00:00" }, { "id": "01a08743-e741-7221-9656-f487d1d57267", "title": "My first WebAssembly trial with Node.js only", "url": "https://blog.axlight.com/posts/my-first-webassembly-trial-with-node-js-only/", "published_at": "2019-01-22T03:00:00+00:00" }, { "id": "01a08743-e741-7221-9656-f487d2623223", "title": "A thought on React Context default value", "url": "https://blog.axlight.com/posts/a-thought-on-react-context-default-value/", "published_at": "2019-01-11T03:00:00+00:00" }, { "id": "01a08743-e741-7221-9656-f487d29da49f", "title": "Developing React custom hooks for abortable async functions with AbortController", "url": "https://blog.axlight.com/posts/developing-react-custom-hooks-for-abortable-async-functions-with-abortcontroller/", "published_at": "2018-12-31T03:00:00+00:00" }, { "id": "01a08743-e741-7221-9656-f487d2bacf36", "title": "Injecting a client-side script in GraphQL Playground in Apollo Server", "url": "https://blog.axlight.com/posts/injecting-a-client-side-script-in-graphql-playground-in-apollo-server/", "published_at": "2018-12-22T03:00:00+00:00" }, { "id": "01a08743-e741-7221-9656-f487d3999506", "title": "Developing React custom hooks for Redux without react-redux", "url": "https://blog.axlight.com/posts/developing-react-custom-hooks-for-redux-without-react-redux/", "published_at": "2018-12-14T03:00:00+00:00" }, { "id": "01a08743-e742-72ef-8e62-bff8afbcf811", "title": "Introduction to abortable async functions for React with hooks", "url": "https://blog.axlight.com/posts/introduction-to-abortable-async-functions-for-react-with-hooks/", "published_at": "2018-12-11T01:00:00+00:00" }, { "id": "01a08743-e742-72ef-8e62-bff8b0452a97", "title": "Creating a Minimal Expo React Native Project with TypeScript and Jest", "url": "https://blog.axlight.com/posts/creating-a-minimal-expo-react-native-project-with-typescript-and-jest/", "published_at": "2018-12-01T03:00:00+00:00" }, { "id": "01a08743-e742-72ef-8e62-bff8b0da3dbb", "title": "React Hooks Tutorial on Developing a Custom Hook for Data Fetching", "url": "https://blog.axlight.com/posts/react-hooks-tutorial-on-developing-a-custom-hook-for-data-fetching/", "published_at": "2018-11-29T03:00:00+00:00" }, { "id": "01a08743-e742-72ef-8e62-bff8b0faa95d", "title": "A deadly simple React bindings library for Redux with Hooks API", "url": "https://blog.axlight.com/posts/a-deadly-simple-react-bindings-library-for-redux-with-hooks-api/", "published_at": "2018-11-16T03:00:00+00:00" }, { "id": "01a08743-e742-72ef-8e62-bff8b1522f4b", "title": "React Hooks Tutorial on pure useReducer + useContext for global state like Redux and comparison with react-hooks-global-state", "url": "https://blog.axlight.com/posts/react-hooks-tutorial-for-pure-usereducer-usecontext-for-global-state-like-redux-and-comparison/", "published_at": "2018-11-09T03:00:00+00:00" }, { "id": "01a08743-e742-72ef-8e62-bff8b1721202", "title": "React global state by Context API for TypeScript", "url": "https://blog.axlight.com/posts/react-global-state-by-context-api-for-typescript/", "published_at": "2018-11-08T03:00:00+00:00" }, { "id": "01a08743-e742-72ef-8e62-bff8b1830f5f", "title": "Redux middleware compatible React Hooks library for easy global state management", "url": "https://blog.axlight.com/posts/redux-middleware-compatible-react-hooks-library-for-easy-global-state-management/", "published_at": "2018-11-07T03:00:00+00:00" }, { "id": "01a08743-e742-72ef-8e62-bff8b23b26bd", "title": "An alternative to React Redux by React Hooks API (For both JavaScript and TypeScript)", "url": "https://blog.axlight.com/posts/an-alternative-to-react-redux-by-react-hooks-api-for-both-javascript-and-typescript/", "published_at": "2018-11-04T03:00:00+00:00" }, { "id": "01a08743-e742-72ef-8e62-bff8b2e8fe4b", "title": "TypeScript-aware React hooks for global state", "url": "https://blog.axlight.com/posts/typescript-aware-react-hooks-for-global-state/", "published_at": "2018-10-28T03:00:00+00:00" }, { "id": "01a08743-e742-72ef-8e62-bff8b2ffbfe2", "title": "Clean Expo (React Native) + React Apollo (GraphQL) + TypeScript boilerplate", "url": "https://blog.axlight.com/posts/clean-expo-react-native-react-apollo-graphql-typescript-boilerplate/", "published_at": "2018-10-20T03:00:00+00:00" }, { "id": "01a08743-e742-72ef-8e62-bff8b31fc703", "title": "React global state by Context API", "url": "https://blog.axlight.com/posts/react-global-state-by-context-api/", "published_at": "2018-10-05T03:00:00+00:00" } ] posts Claim your blog
Back to blog.axlight.com
Blog · corpus.blog/blogs/blog.axlight.com/posts

blog.axlight.com

blog.axlight.com

2025

2024

2023

2022

2021

2020

2019

2018