<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/sources/habr/best-of/2023/08" -->

---
title: Best habr posts — August 2023 | daily.dev
description: The most upvoted habr posts from August 2023, curated by the daily.dev community.
canonical: https://daily.dev/sources/habr/best-of/2023/08
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:url: https://daily.dev/sources/habr/best-of/2023/08
og:type: website
og:site_name: daily.dev
og:title: Best habr posts — August 2023 | daily.dev
og:description: The most upvoted habr posts from August 2023, curated by the daily.dev community.
og:image: https://media.daily.dev/image/upload/s--VAY5ToZt--/f_auto/v1724209435/public/daily.dev%20-%20open%20graph
---

# Best of habr — August 2023

1. 1  
[](https://daily.dev/posts/react-custom-hook-usearray-xdnabel6v "React Custom Hook: useArray")  
Article  
![Avatar of habr](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/habr)habr · 3y  
React Custom Hook: useArray  
"useArray" hook is one of the many carefully crafted hooks available in the collection of React custom hooks. The useArray hook uses the useState hook from React to manage the array state. The advantages of using this custom hook are twofold: it simplifies the management of array states and provides a cleaner and more readable code structure.  
153  
10
2. 2  
[](https://daily.dev/posts/react-custom-hook-useasync-xm3z5emfo "React Custom Hook: useAsync")  
Article  
![Avatar of habr](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/habr)habr · 3y  
React Custom Hook: useAsync  
The useAsync hook takes in a callback function that performs the asynchronous operation and an optional array of dependencies. It returns an object with three properties: loading, error, and value. The hook employs the useState and useEffect hooks to manage the loading state and invoke the memoized callback function when necessary.  
84  
3
3. 3  
[](https://daily.dev/posts/react-custom-hook-usedarkmode-v8zzl6epm "React Custom Hook: useDarkMode")  
Article  
![Avatar of habr](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/habr)habr · 3y  
React Custom Hook: useDarkMode  
"UseDarkMode" Hook is one of the many carefully crafted hooks available in the collection of React custom hooks. It combines two other handy hooks and, to provide a seamless dark mode experience. It automatically detects the user's preferred color scheme and persists the dark mode state in the browser's local storage.  
72
4. 4  
[](https://daily.dev/posts/react-custom-hook-useclickoutside-yezh95qls "React Custom Hook: useClickOutside")  
Article  
![Avatar of habr](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/habr)habr · 3y  
React Custom Hook: useClickOutside  
The useClickOutside hook is designed to simplify the process of detecting clicks outside a specified component. It listens for click events on the document level, allowing you to trigger a callback function when a click occurs outside the provided component's reference. It works seamlessly with functional components using the useState and useRef hooks.  
63  
2
5. 5  
[](https://daily.dev/posts/react-custom-hook-usedebuginformation-1ztlht8nk "React Custom Hook: useDebugInformation")  
Article  
![Avatar of habr](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/habr)habr · 3y  
React Custom Hook: useDebugInformation  
React Custom Hook: useDebugInformation is one of the many carefully crafted hooks available in the collection of React custom hooks. The hook tracks the number of renders, changed props, time since the last render, and the timestamp of the last rendering. UseDebugInformation can be applied in various scenarios.  
57
6. 6  
[](https://daily.dev/posts/let-s-kill-all-frameworks-at-once-29srd6pe5 "Let's kill all frameworks at once")  
Article  
![Avatar of habr](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/habr)habr · 3y  
Let's kill all frameworks at once  
The general trend of technology development is characterized by surges and declines, says John Sutter. Sutter: We are entering an era where framework and Electron technologies may be eclipsed by generative AI. He says.NET is becoming an open platform with all source code available on GitHub.NET.  
53  
5
7. 7  
[](https://daily.dev/posts/react-custom-hook-usecookie-nrhqaw9xu "React Custom Hook: useCookie")  
Article  
![Avatar of habr](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/habr)habr · 3y  
React Custom Hook: useCookie  
React Custom Hook: useCookie is one of the many carefully crafted hooks available in the collection of React custom hooks. UseCookie allows you to effortlessly handle cookies by providing a concise interface. In scenarios where you need to remove a cookie, the deleteCookie function comes to the rescue.  
52  
3

[See all habr archives](/sources/habr/best-of)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@graph":[{"@type":"CollectionPage","@id":"https://daily.dev/sources/habr/best-of/2023/08#page","url":"https://daily.dev/sources/habr/best-of/2023/08","name":"Best habr Posts — August 2023","description":"The most upvoted habr posts from August 2023, curated by the daily.dev community.","isPartOf":{"@type":"WebSite","url":"https://daily.dev"}},{"@type":"ItemList","@id":"https://daily.dev/sources/habr/best-of/2023/08#items","numberOfItems":7,"itemListElement":[{"@type":"ListItem","position":1,"url":"https://daily.dev/posts/react-custom-hook-usearray-xdnabel6v","name":"React Custom Hook: useArray"},{"@type":"ListItem","position":2,"url":"https://daily.dev/posts/react-custom-hook-useasync-xm3z5emfo","name":"React Custom Hook: useAsync"},{"@type":"ListItem","position":3,"url":"https://daily.dev/posts/react-custom-hook-usedarkmode-v8zzl6epm","name":"React Custom Hook: useDarkMode"},{"@type":"ListItem","position":4,"url":"https://daily.dev/posts/react-custom-hook-useclickoutside-yezh95qls","name":"React Custom Hook: useClickOutside"},{"@type":"ListItem","position":5,"url":"https://daily.dev/posts/react-custom-hook-usedebuginformation-1ztlht8nk","name":"React Custom Hook: useDebugInformation"},{"@type":"ListItem","position":6,"url":"https://daily.dev/posts/let-s-kill-all-frameworks-at-once-29srd6pe5","name":"Let's kill all frameworks at once"},{"@type":"ListItem","position":7,"url":"https://daily.dev/posts/react-custom-hook-usecookie-nrhqaw9xu","name":"React Custom Hook: useCookie"}]},{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Sources","item":"https://daily.dev/sources"},{"@type":"ListItem","position":3,"name":"habr","item":"https://daily.dev/sources/habr"},{"@type":"ListItem","position":4,"name":"Best of","item":"https://daily.dev/sources/habr/best-of"},{"@type":"ListItem","position":5,"name":"August 2023"}]}]}
```

