Дан следующий код:
import { useState, useEffect, useRef } from "react";
function App() {
const [inputValue, setInputValue] = useState("");
const previousInputValue = useRef("");
return (
<>
<input
type="text"
value={inputValue}
onChange={(e) => setInputValue(e.target.value)}
/>
<h2>Current Value: {inputValue}</h2>
<h2>Previous Value: {previousInputValue.current}</h2>
</>
);
}
Ответ:
function App() {
const [inputValue, setInputValue] = useState("");
const [prevInputValue, setPrevInputValue] = useState("");
const prevRef = useRef();
useEffect(() => {
prevRef.current = inputValue;
}, [inputValue]);
return (
<>
<input
type="text"
value={inputValue}
onChange={(e) => setInputValue(prev => {
setPrevInputValue(prev); // Предыдущее состояние
return e.target.value; // Устанавливаем текущее
})}
/>
<h2>Current Value: {inputValue}</h2>
<h2>Previous Value: {prevInputValue}</h2>
<h2>Previous Value vs Ref: {prevRef.current}</h2>
</>
);
}
Можно ли обойтись без использования
useEfect
? 👍 если нравится такой формат вопрос.
Пишите свое решение в комментариях👇
@react_tg
Please open Telegram to view this post
VIEW IN TELEGRAM
👍37❤5🔥4
React Hooks подобны специям на вашей кухне, они придают аромат вашему блюду и делают его еще вкуснее.
Так же, как и специи, разные крючки используются по-разному и могут значительно повысить функциональность ваших компонентов. В этой статье мы рассмотрим пять наиболее часто используемых React Hooks и исследуем их применение и преимущества на примерах кода и реальных примерах использования.
▪Читать
▪Зеркало
@react_tg
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥3❤1🤩1
This media is not supported in your browser
VIEW IN TELEGRAM
Scrollend позволяет отследить, когда была закончена прокрутка и совершить после этого определённые действия. Это событие может избавить вас от лишних функций timeout и сделает код понятнее и чище.
Узнать подробности можно тут:
https://developer.chrome.com/blog/scrollend-a-new-javascript-event/
@react_tg
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥3❤1
Для хардкорных фанатов Реакта и всем кому интересна веб-разработка. На ютубе вышел документальный фильм – React.js: Documentary
React — одна из самых популярных библиотек. Учитывая, что он был создан внутри Facebook, можно было предположить, что он всегда был обречен на успех.
Что, если мы скажем вам, что первое столкновение React с публикой было не таким гламурным? Полная история первых дней существования React и группы преданных своему делу разработчиков, которые помогли вывести его на мировую арену.
Фильм на английском, есть русские сабы:
👉 Смотреть на ютуб
@react_tg
React — одна из самых популярных библиотек. Учитывая, что он был создан внутри Facebook, можно было предположить, что он всегда был обречен на успех.
Что, если мы скажем вам, что первое столкновение React с публикой было не таким гламурным? Полная история первых дней существования React и группы преданных своему делу разработчиков, которые помогли вывести его на мировую арену.
Фильм на английском, есть русские сабы:
👉 Смотреть на ютуб
@react_tg
👍18🔥6❤2
React разработчик Винкас Стонис собрал 12 пунктов по техническому SEO:
"Многие разработчики, даже опытные, ничего не знают о поисковой оптимизации (SEO). И я тоже долго не знал. SEO в основном невидим, поэтому его легко игнорировать"
Добавляйте в закладки чтобы не потерять:
👉 Читать статью
@react_tg
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥5🤡3❤1
This media is not supported in your browser
VIEW IN TELEGRAM
Стильное, анимированное переключение между вкладками, реализованное c применением SCSS.
https://codepen.io/pehaa/pen/wvBLpNK
@react_tg
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14❤5🔥5
Несмотря на то, что использование useMemo и useCallback совершенно оправдано во многих случаях, и это отличные инструменты, они могут оказаться проблемными при неправильной эксплуатации.
Поэтому я собираюсь перечислить несколько аспектов, о которых следует помнить, когда ваше приложение работает неэффективно.
▪Читать
@react_tg
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12👍6❤2
💡Совет React JS / JavaScript:
Нам не нужно использовать хуки при работе с формами в React. Мы можем обрабатывать изменения и отправлять их непосредственно в данные формы.
Посмотрите этот пример. Кроме того, мы получаем гораздо лучшую производительность (без повторного рендеринга).
#junior
@react_tg
Нам не нужно использовать хуки при работе с формами в React. Мы можем обрабатывать изменения и отправлять их непосредственно в данные формы.
Посмотрите этот пример. Кроме того, мы получаем гораздо лучшую производительность (без повторного рендеринга).
#junior
@react_tg
👍27❤4🔥4
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15👍5👎2🥰1
This media is not supported in your browser
VIEW IN TELEGRAM
🐵🙈 Форма входа с анимодзи в стиле неоморфизм, написанная на HTML, CSS и ReactJs.
Пользователь гитхаба поделился репозиторием:
Ссылка
@react_tg
Пользователь гитхаба поделился репозиторием:
Ссылка
@react_tg
👍32❤9🔥4🤡2
Анонс Sandpack 2.0 и среды разработки Node.js для любого браузера.
CodeSandbox анонсировала новую версию Sandpack, инструмента для лайв-кодинга в браузере (редактор кода + предварительный просмотр). Sandpack хорошо интегрируется с React благодаря специальному пакету. Первая версия уже использовалась на новом сайте бета-документации React Джошем Комо и многими другими.
Вторая версия основана на новой технологии NodeBox, которая позволяет запускать Node.js в браузере. Можно запускать Next.js, Vite, Astro и другие стеки.
Это напоминает технологию StackBlitz, которая только что анонсировала WebContainers API . В статье Sandpack объясняются различия между NodeBox и WebContainers.
https://codesandbox.io/blog/announcing-sandpack-2
@react_tg
CodeSandbox анонсировала новую версию Sandpack, инструмента для лайв-кодинга в браузере (редактор кода + предварительный просмотр). Sandpack хорошо интегрируется с React благодаря специальному пакету. Первая версия уже использовалась на новом сайте бета-документации React Джошем Комо и многими другими.
Вторая версия основана на новой технологии NodeBox, которая позволяет запускать Node.js в браузере. Можно запускать Next.js, Vite, Astro и другие стеки.
Это напоминает технологию StackBlitz, которая только что анонсировала WebContainers API . В статье Sandpack объясняются различия между NodeBox и WebContainers.
https://codesandbox.io/blog/announcing-sandpack-2
@react_tg
👍13🔥2❤1
This media is not supported in your browser
VIEW IN TELEGRAM
https://codepen.io/hexagoncircle/pen/XWbWKwL
@react_tg
Please open Telegram to view this post
VIEW IN TELEGRAM
👍22❤5🔥2
React просто великолепен: он крайне производителен и популярен во всем мире. Но не стоит игнорировать тот факт, что “из коробки” React предоставляет не так уж и много готовых решений.
Поэтому приходится искать дополнительные сторонние библиотеки. Они могут оказаться как высококачественными, так и написанными на скорую руку. Если вы новичок, то вам придется потратить довольно много времени на поиск наилучшего решения.
Сегодня проведем сравнительное обсуждение с целью детально разобраться в альтернативных решениях различных проблем React.
▪Читать
@react_tg
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🔥4👎2🥴2❤1
Шаблоны лендингов очень распространены в интернете: легко собираются, удобны в использовании и выглядят отлично. Но это только в теории.
На практике большинство шаблонов либо красивые, но с неаккуратным кодом, либо наоборот: имеют приличный код, но выглядят ужасно.
Шаблон с разумным применением современных технологий отличается от них как небо и земля.
▪Читать
▪Код
@react_tg
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🔥4❤3
Библиотеки react в 2023 году
Пожалуй, один из лучших обзоров библиотек React в 2023 году. Все разбито по категориям, а в конце каждого раздела вас ждут советы, которые позволят сделать правильный выбор.
Читать
@react_tg
Пожалуй, один из лучших обзоров библиотек React в 2023 году. Все разбито по категориям, а в конце каждого раздела вас ждут советы, которые позволят сделать правильный выбор.
Читать
@react_tg
www.robinwieruch.de
React Libraries for 2025
Discover the essential React libraries for 2025! Navigate the vast ecosystem effortlessly with this curated list. Empower your React projects with these powerful tools for seamless development of large-scale applications ...
👍16🔥2❤1😱1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17❤3🔥1
Читая документацию React наткнулся на интересную с моей точки зрения конструкцию в react-bootstrap:
<Nav
activeKey="/home"
onSelect={selectedKey => alert(`selected ${selectedKey}`)}>
<Nav.Item>
<Nav.Link href="/home">Active</Nav.Link>
</Nav.Item>
<Nav.Item>
<Nav.Link eventKey="link-1">Link</Nav.Link>
</Nav.Item>
<Nav.Item>
<Nav.Link eventKey="link-2">Link</Nav.Link>
</Nav.Item>
<Nav.Item>
<Nav.Link eventKey="disabled" disabled>
Disabled
</Nav.Link>
</Nav.Item>
</Nav>
Это способ структурирования кода.
Nav.Item это такой же компонент, как и любой другой обычный компонент React. Но, в данном случае, мы используем namespace для того, что бы точно знать, какой именно компонент используем. Посмотрите сами, Item очень обобщенное имя, поэтому другие библиотеки могут тоже его использовать
import {Item} from 'one-lib';
import {Item} from 'two-lib'; // Oooops. Duplicate name!
Можно выкрутиться используя конструкцию as, но это не так красиво)
import {Item} from 'one-lib';
import {Item as ItemTwo} from 'two-lib'; // Ok
Поэтому, разработчик может не волноваться за проблему дубликата имен, а создать свой namespace, где будет уже иметь свои стандартные и уникальные, в рамках своей либы, названия
import {Nav} from 'lib';
Nav.Component1; // Ok!
Nav.Component2; // Ok too!
// В коде либы
export Nav = {
Component1: ...,
Component2: ...,
}
При этом Nav сам может являться компонентом, тогда остальные будут статическими св-свами
class Nav extends React.Component {}; // Тут уже используются эта техника - React.Component
Nav.Component1 = class Component1 extends React.Component {}
Nav.Component2 = class Component1 extends React.Component {}
export Nav
@react_tg
Please open Telegram to view this post
VIEW IN TELEGRAM
👍25❤🔥1❤1🔥1
Разработка микро-интерфейса с помощью Single SPA на React.
Single SPA – это JavaScript-фреймворк для создания микро-интерфейсов. Он позволяет вам создавать несколько небольших приложений и объединять их в одно более крупное. С помощью Single SPA вы можете использовать различные интерфейсные фреймворки (такие как React, Angular, Vue и т.д.) для создания своих микро-интерфейсов.
▪Читать
@react_tg
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15❤1🔥1
Browserling — тестирование кроссбраузерности онлайн
Работает сервис достаточно просто — он запускает веб-приложения на своих удалённых виртуальных машинах.
Тестируется же всё в совершенно разнообразных браузерах и системах: начиная с Windows 10 и Google Chrome либо Opera, заканчивая Windows 7 и Android 7 с Safari и Internet Explorer
Стоимость: #бесплатно (но есть платные функции)
#web #qa
@react_tg
Работает сервис достаточно просто — он запускает веб-приложения на своих удалённых виртуальных машинах.
Тестируется же всё в совершенно разнообразных браузерах и системах: начиная с Windows 10 и Google Chrome либо Opera, заканчивая Windows 7 и Android 7 с Safari и Internet Explorer
Стоимость: #бесплатно (но есть платные функции)
#web #qa
@react_tg
👍14🔥2❤1🤣1