Многие разработчики продолжают использовать хуки
useState
и useEffect
для обновления состояний, но мне такой подход не нравится. Проблема заключается в том, что компонент одновременно монтируется, перемонтируется и размонтируется, что приводит к неожиданному поведению. В результате при записи в консоль результат может быть повторен три раза.Назначение хука useLoaderData
Хук
useLoaderData
— это пользовательский хук в React, который помогает загружать данные в компонент. Он упрощает получение данных из API и выполнение асинхронных операций.Используя хук
useLoaderData
, вы предоставляете ему функцию, которая возвращает промис. Этот промис представляет собой асинхронную операцию, в результате которой будут получены необходимые данные. Как только промис разрешится, данные станут доступны компоненту.Хук
useLoaderData
обрабатывает состояние загрузки, поэтому вам не нужно вручную отслеживать, загружаются ли еще данные или их загрузка уже закончена. Он предоставляет удобный способ доступа к данным, а также позволяет устранять возможные ошибки, которые могут возникнуть при загрузке данных.Хук
useLoaderData
позволяет сохранить чистоту и организованность кода компонента, отделяя логику загрузки данных от остальных задач компонента. Это позволяет легко получать данные и управлять ими более удобным для новичков способом.Как это работает
Надеюсь, вы хорошо знаете, как функционирует
React Router 6.
В противном случае ознакомьтесь с документацией по ссылке.Прежде всего, нам необходимо настроить систему маршрутизации в приложении для работы с API загрузчика. До этого момента мы использовали настройку
BrowserRouter
для работы с различными маршрутами приложения.Обсудим этот фрагмент.
import { BrowserRouter, Routes, Route, Outlet } from "react-router-dom"
import HomeComponent from "./home"
import AboutCompoent from "./about"
function App () {
<BrowserRouter>
<Routes>
<Route path='/' element={<Outlet />}>
<Route index element={<HomeComponent /> } />
<Route path='about' element={<AboutComponent/> } />
</Route>
</Routes>
</BrowserRouter>
};
export default App;
Здесь создана традиционная система маршрутизации с использованием импорта из React Router.Что тут происходит?
BrowserRouter из библиотеки React Router создает массив объектов из дочерних элементов Routes. Приведенный ниже фрагмент наглядно демонстрирует, как это происходит.
BrowserRouter([
{
path: '/',
element: <HomeComponent />,
children: []
},
{
path: '/about',
element: <AboutComponent/>,
children: []
}
])
📌 Читать дальше
@react_tg
Please open Telegram to view this post
VIEW IN TELEGRAM
🤡23👍18❤2🔥2🥱1
This media is not supported in your browser
VIEW IN TELEGRAM
GSAP - Scroll animation — анимация текста при прокрутке. Реализована с помощью CSS и JavaScript
#анимация #css #javascript #gsap
https://codepen.io/Tiopayo/pen/QWZbqZz
@react_tg
#анимация #css #javascript #gsap
https://codepen.io/Tiopayo/pen/QWZbqZz
@react_tg
🔥12👍2🥰1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍27🔥9❤2🤯2
React Suspense в трех различных архитектурах
React Suspense прошел странный путь: в течение многих лет он практически не использовался и считался малопригодным, просто причудливым способом отображения состояния загрузки.
Однако с выходом
К сожалению, эти преимущества могут варьироваться от неинтересных до эзотерических и существенно зависят от архитектуры вашего приложения.
Давайте рассмотрим три наиболее распространенные на сегодняшний день архитектуры рендеринга и то, какую роль в них может сыграть
📌 Статья
@react_tg
React Suspense прошел странный путь: в течение многих лет он практически не использовался и считался малопригодным, просто причудливым способом отображения состояния загрузки.
Однако с выходом
React
18 у Suspense
появился целый ряд новых преимуществ, которые заслуживают того, чтобы взглянуть на них еще раз. К сожалению, эти преимущества могут варьироваться от неинтересных до эзотерических и существенно зависят от архитектуры вашего приложения.
Давайте рассмотрим три наиболее распространенные на сегодняшний день архитектуры рендеринга и то, какую роль в них может сыграть
React Suspense.
📌 Статья
@react_tg
👍10❤1🔥1
🔥 Дайджест полезных материалов из мира React за неделю
Почитать:
— Современный junior frontend developer на двух работах уровня middle с общей ЗП 400к. Реальность ли в 2023 году?
— Wolfram Language JavaScript Frontend
— «Нейрогород»: игра на знание JavaScript про фронтендерские баги
— Мои первые шаги в создании браузерных 2D игр на чистом JavaScript + Canvas. Часть 1. Прототип
— Сайд эффект реактивности и апдейта компонента во Vue 3
— Вышел Chrome 118
— Что быстрее: Animated + useNativeDriver или Reanimated?
— Как внедрить гайд по стилю кода в проект
— 🔄 Displaying React Components in Reverse Order
— Easily style active links in Tanstack Router
— 🚀 Supercharge Your Next.js App with Stunning Images! Learn the Ultimate Cloudinary Image Upload Hack 🔥
— 3D Responsive Cool Text Animation In React.js
— Keep It Uplifting podcast. James “Uplifting” Edwards explores the intersection of lifestyle and success with Richard Blank.
— How ChatGPT helped me build an awesome React component
— Crafting Parallax Magic in Your React App: From Basics to Advanced
— Thinking Locally with Signals
— Making a custom 404 page in Next.js
— Higher Order Components: Cleaning Up Repetitive React Code
Посмотреть:
🌐 How To Create The YouTube Home Page With Tailwind, React, and TypeScript (⏱ 01:49:08)
🌐 Container Queries In TailwindCSS (⏱ 01:00)
Хорошего дня!
Почитать:
— Современный junior frontend developer на двух работах уровня middle с общей ЗП 400к. Реальность ли в 2023 году?
— Wolfram Language JavaScript Frontend
— «Нейрогород»: игра на знание JavaScript про фронтендерские баги
— Мои первые шаги в создании браузерных 2D игр на чистом JavaScript + Canvas. Часть 1. Прототип
— Сайд эффект реактивности и апдейта компонента во Vue 3
— Вышел Chrome 118
— Что быстрее: Animated + useNativeDriver или Reanimated?
— Как внедрить гайд по стилю кода в проект
— 🔄 Displaying React Components in Reverse Order
— Easily style active links in Tanstack Router
— 🚀 Supercharge Your Next.js App with Stunning Images! Learn the Ultimate Cloudinary Image Upload Hack 🔥
— 3D Responsive Cool Text Animation In React.js
— Keep It Uplifting podcast. James “Uplifting” Edwards explores the intersection of lifestyle and success with Richard Blank.
— How ChatGPT helped me build an awesome React component
— Crafting Parallax Magic in Your React App: From Basics to Advanced
— Thinking Locally with Signals
— Making a custom 404 page in Next.js
— Higher Order Components: Cleaning Up Repetitive React Code
Посмотреть:
🌐 How To Create The YouTube Home Page With Tailwind, React, and TypeScript (⏱ 01:49:08)
🌐 Container Queries In TailwindCSS (⏱ 01:00)
Хорошего дня!
👍9❤1🔥1
🚀 MERN - это мощный набор инструментов для создания веб-приложений полного стека.
Он пользуется популярностью как у начинающих, так и у опытных веб-разработчиков.
В этом углубленном курсе вы узнаете, как создать книжный магазин с использованием
• Курс
• Код
@react_tg
Он пользуется популярностью как у начинающих, так и у опытных веб-разработчиков.
В этом углубленном курсе вы узнаете, как создать книжный магазин с использованием
MongoDB, Express.js, React и Node.js.
• Курс
• Код
@react_tg
👍13👎3🤡2❤1🔥1🤩1
Она позволяет добавлять анимированные кнопки, исчезающий текст и многое другое - всего в нескольких строках кода.
В этом уроке показано как использовать Framer Motion для создания полностью анимированной боковой панели в React.
• Код проекта
• Урок
• Github
@react_tg
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15❤🔥2❤1
Forwarded from Искусственный интеллект. Высокие технологии
Вышел GigaChat нового поколения. Разработчики @gigachat_bot качественно обновили его, изменив свой подход к обучению. Благодаря этому сервис стал лучше отвечать на запросы пользователей — примерно в два раза. При этом GigaChat также запустили в VK, аудитория сервиса уже достигла более 1 млн пользователей.
Попробовать.
@vistehno
Попробовать.
@vistehno
👍6❤1🔥1
🔥 Дайджест полезных материалов из мира React за неделю
Почитать:
— Fusor vs React
— JavaScript pattern CustomSwitch
— CRUD React c Redux и Saga + typescript в 2023
— Приглашаем на онлайн-митап «Гетерогенность, или Деплой JavaScript туда и обратно»
— Next JS и Nginx
— О чем расскажут на HolyJS 2023 Autumn: от архитектуры до карьеры
— Vue.js 3 — шаблоны проектирования и лучшие практики
— Небольшое React приложение со своим бекендом, запускаем с одного терминала
— PiterJS: сентябрь/октябрь
— Взаимодействие с Midjourney с использованием Discord API
— css loader
— 7 Github Repositories to Master React 😎
— Optimizing Web Performance: PNG Compression⚡
— The Top 10 Reusable Components in React
— Flatiron - Phase 4
— Optimize Your React Code: Avoid Unnecessary useState Hooks
— Understanding React Props: A Fundamental Building Block
— Building a Full Stack Application with Ruby on Rails and React within the MVC Architecture
— Passing Props in React
— Create a Chrome Extension with React FW Plasmo
Посмотреть:
🌐 You Suck At Accessibility (But You Don't Have To) (⏱ 13:23)
🌐 This New Node Feature Is Super Convenient (⏱ 00:43)
Хорошего дня!
@react_tg
Почитать:
— Fusor vs React
— JavaScript pattern CustomSwitch
— CRUD React c Redux и Saga + typescript в 2023
— Приглашаем на онлайн-митап «Гетерогенность, или Деплой JavaScript туда и обратно»
— Next JS и Nginx
— О чем расскажут на HolyJS 2023 Autumn: от архитектуры до карьеры
— Vue.js 3 — шаблоны проектирования и лучшие практики
— Небольшое React приложение со своим бекендом, запускаем с одного терминала
— PiterJS: сентябрь/октябрь
— Взаимодействие с Midjourney с использованием Discord API
— css loader
— 7 Github Repositories to Master React 😎
— Optimizing Web Performance: PNG Compression⚡
— The Top 10 Reusable Components in React
— Flatiron - Phase 4
— Optimize Your React Code: Avoid Unnecessary useState Hooks
— Understanding React Props: A Fundamental Building Block
— Building a Full Stack Application with Ruby on Rails and React within the MVC Architecture
— Passing Props in React
— Create a Chrome Extension with React FW Plasmo
Посмотреть:
🌐 You Suck At Accessibility (But You Don't Have To) (⏱ 13:23)
🌐 This New Node Feature Is Super Convenient (⏱ 00:43)
Хорошего дня!
@react_tg
❤7👍5🔥1
®️Основные различия между React.js и React Native
Есть ли разница между React.js и React Native?
В демонстрационных целях я создал два проекта:
1. Для React Native с помощью команды: yarn create expo-app AwesomeProject.
2. Для React.js с помощью команды: npx create-next-app reactjs-awesome-project.
Рассмотрим соответствующие файлы package.json.
Рис. 1 Файл package.json проекта, созданного для React Native
Рис. 2. Файл package.json проекта, созданного для React.js
Как видите, оба проекта используют одну версию React-библиотеки. Если обратить внимание на строку 15 рис. 1 и строку 21 рис. 2, то можно заметить, что проект React Native основан на зависимости react-native, а проект React.js — на react-dom.
Итак, оба проекта используют React-библиотеку, а значит, сравнение React.js и React Native можно свести к сравнению React Dom и React Native.
Чтобы выявить различия между React DOM и React Native и понять, легко ли веб-разработчику React перейти к разработке с React Native, изучим сначала три основные библиотеки: React.js, React DOM и React Native.
Посмотрим, что они представляет собой и как работают.⬇️
📌 Читать
@react_js
Есть ли разница между React.js и React Native?
В демонстрационных целях я создал два проекта:
1. Для React Native с помощью команды: yarn create expo-app AwesomeProject.
2. Для React.js с помощью команды: npx create-next-app reactjs-awesome-project.
Рассмотрим соответствующие файлы package.json.
Рис. 1 Файл package.json проекта, созданного для React Native
Рис. 2. Файл package.json проекта, созданного для React.js
Как видите, оба проекта используют одну версию React-библиотеки. Если обратить внимание на строку 15 рис. 1 и строку 21 рис. 2, то можно заметить, что проект React Native основан на зависимости react-native, а проект React.js — на react-dom.
Итак, оба проекта используют React-библиотеку, а значит, сравнение React.js и React Native можно свести к сравнению React Dom и React Native.
Чтобы выявить различия между React DOM и React Native и понять, легко ли веб-разработчику React перейти к разработке с React Native, изучим сначала три основные библиотеки: React.js, React DOM и React Native.
Посмотрим, что они представляет собой и как работают.
📌 Читать
@react_js
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10🥱6👍4❤1🤔1
This media is not supported in your browser
VIEW IN TELEGRAM
Shapes, Clip-Path and CSS Grid — демонстрация CSS Shapes, CSS-свойства clip-path и CSS Grid. Реализована с помощью CSS и JavaScript
#анимация #css #javascript
https://codepen.io/mandymichael/pen/axZyoP
@react_tg
#анимация #css #javascript
https://codepen.io/mandymichael/pen/axZyoP
@react_tg
👍8❤1🔥1
🔥 Дайджест полезных материалов из мира React за неделю
Почитать:
— Как мы заинжектили кнопку на Behance
— Гайд по микрофронтендам на single-spa, или Как уже наконец-то уйти от монолита во фронтенде
— Как можно использовать .NET из Javascript (React) в 2023 году
— Простой пример ИИ для управления роботом. TensorFlow + Node Js
— 8 углубленных вопросов на собеседованиях на роль сеньора в JavaScript
— React vs Vue vs Angular. Часть 3
— Как выстроить удобные процессы в работе с монорепой
— 9 алгоритмов сортировки и поиска для JS, о которых вас спросят на собеседовании
— Особенности кодировки строк в Base64 в JavaScript
— Service Workers против медленного интернета: Кэширование и улучшение UX
— Can someone give me a link to download this book for free ? "Understanding Redux by Ohans Emmanuel"
— Announcing the First Ever State of React Survey
— Next.js + Redoc to create a low-latency API references
— Performing CRUD Operations in a React-Express-MongoDB Application
— React Search Using-Debounce
— How and when to use keys in React
— Wow! Server Actions are now Stable from Next.js 14! Dramatic changes in React and Next's form
— Fetching and rendering data from an API in React.js
— Building a Stopwatch in React
— The Top Animation Libraries for React in 2023
Посмотреть:
🌐 Did Josh Make A Mistake? (⏱ 06:58)
🌐 This Experimental Chrome Accessibility Feature Is A Game Changer (⏱ 00:48)
Хорошего дня!
@react_tg
Почитать:
— Как мы заинжектили кнопку на Behance
— Гайд по микрофронтендам на single-spa, или Как уже наконец-то уйти от монолита во фронтенде
— Как можно использовать .NET из Javascript (React) в 2023 году
— Простой пример ИИ для управления роботом. TensorFlow + Node Js
— 8 углубленных вопросов на собеседованиях на роль сеньора в JavaScript
— React vs Vue vs Angular. Часть 3
— Как выстроить удобные процессы в работе с монорепой
— 9 алгоритмов сортировки и поиска для JS, о которых вас спросят на собеседовании
— Особенности кодировки строк в Base64 в JavaScript
— Service Workers против медленного интернета: Кэширование и улучшение UX
— Can someone give me a link to download this book for free ? "Understanding Redux by Ohans Emmanuel"
— Announcing the First Ever State of React Survey
— Next.js + Redoc to create a low-latency API references
— Performing CRUD Operations in a React-Express-MongoDB Application
— React Search Using-Debounce
— How and when to use keys in React
— Wow! Server Actions are now Stable from Next.js 14! Dramatic changes in React and Next's form
— Fetching and rendering data from an API in React.js
— Building a Stopwatch in React
— The Top Animation Libraries for React in 2023
Посмотреть:
🌐 Did Josh Make A Mistake? (⏱ 06:58)
🌐 This Experimental Chrome Accessibility Feature Is A Game Changer (⏱ 00:48)
Хорошего дня!
@react_tg
👍12🔥3❤1🤔1
This media is not supported in your browser
VIEW IN TELEGRAM
❌ Избегайте использования
✅ Вместо этого используйте
@react_tg
Conditional Rendering
для рендеринга вьюх в React.✅ Вместо этого используйте
Enums
@react_tg
👍43🔥7❤6
This media is not supported in your browser
VIEW IN TELEGRAM
Главные принципы при разработке проектов:
✅ масштабируемость
✅ аккуратность кода
✅ ясность
@react_tg
Please open Telegram to view this post
VIEW IN TELEGRAM
👍48❤5🔥4🤡3🍌3
🔥 Дайджест полезных материалов из мира React за неделю
Почитать:
— Какие неочевидные темы вспомнить перед собеседованием на Frontend разработчика
— Что такое деление по модулю в JavaScript?
— Почему я не буду использовать Next.js
— Redux-toolkit и переиспользование кода
— Разработка браузерных игр с использованием Phaser3, React, Typescript
— Два frontend фреймворка. Два подхода
— Как не программист, вероятно, написал самую быструю библиотеку в мире
— Что нового в Chrome 119?
— Взаимодействие с Midjourney с использованием Discord API • Часть II
— Conditional rendering in React
— Looking for Open-source contribution opportunities
— Yet Another Newsletter LOL: The Narrows
— Redesigned , developed my Portfolio website in React.js and Tailwind CSS
— Why useSyncExternalStore Is Not Used in Jotai
— I built a Snake Game in React
— Why React is Winning the Web: Insights into the Most Popular UI Library
— Preserving Special Characters in Query Parameters: A React Journey
— Learn React The Hard Way: Manage State Better
— React component for an amazing card border and glow animation
Посмотреть:
🌐 Node Just Released This Amazing Feature! (⏱ 00:44)
🌐 Why Signals Are Better Than React Hooks (⏱ 16:30)
Хорошего дня!
@react_tg
Почитать:
— Какие неочевидные темы вспомнить перед собеседованием на Frontend разработчика
— Что такое деление по модулю в JavaScript?
— Почему я не буду использовать Next.js
— Redux-toolkit и переиспользование кода
— Разработка браузерных игр с использованием Phaser3, React, Typescript
— Два frontend фреймворка. Два подхода
— Как не программист, вероятно, написал самую быструю библиотеку в мире
— Что нового в Chrome 119?
— Взаимодействие с Midjourney с использованием Discord API • Часть II
— Conditional rendering in React
— Looking for Open-source contribution opportunities
— Yet Another Newsletter LOL: The Narrows
— Redesigned , developed my Portfolio website in React.js and Tailwind CSS
— Why useSyncExternalStore Is Not Used in Jotai
— I built a Snake Game in React
— Why React is Winning the Web: Insights into the Most Popular UI Library
— Preserving Special Characters in Query Parameters: A React Journey
— Learn React The Hard Way: Manage State Better
— React component for an amazing card border and glow animation
Посмотреть:
🌐 Node Just Released This Amazing Feature! (⏱ 00:44)
🌐 Why Signals Are Better Than React Hooks (⏱ 16:30)
Хорошего дня!
@react_tg
👍17🔥4❤2👌1