React JS
17.6K subscribers
550 photos
59 videos
5 files
626 links
React программирование

@haarrp - admin

@itchannels_telegram - 🔥лучшие ит-каналы

@javascriptv - продвинутый javascript

@programming_books_it - бесплатные it книги

@ai_machinelearning_big_data - ml

№ 5037566384
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 Sliding Image Track — реализация изящного cлайдера с эффектом параллакса.

📌 Код

react_tg
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥72
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 Elastic Accordion GSAP — галерея с «эластичным» эффектом переключения.

https://codepen.io/supah/pen/rNKraQJ

@react_tg
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🔥64
🖥 Дополнить программу так, чтобы в previousInputValue сохранялось предыдущее введенное значение, с помощью useRef?

Дан следующий код:

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
👍375🔥4
🖥 Знакомство с 5 самыми популярными хуками React.


React Hooks подобны специям на вашей кухне, они придают аромат вашему блюду и делают его еще вкуснее.

Так же, как и специи, разные крючки используются по-разному и могут значительно повысить функциональность ваших компонентов. В этой статье мы рассмотрим пять наиболее часто используемых React Hooks и исследуем их применение и преимущества на примерах кода и реальных примерах использования.

Читать
Зеркало

@react_tg
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥31🤩1
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 Scrollend

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🔥31
Для хардкорных фанатов Реакта и всем кому интересна веб-разработка. На ютубе вышел документальный фильм – React.js: Documentary

React — одна из самых популярных библиотек. Учитывая, что он был создан внутри Facebook, можно было предположить, что он всегда был обречен на успех.

Что, если мы скажем вам, что первое столкновение React с публикой было не таким гламурным? Полная история первых дней существования React и группы преданных своему делу разработчиков, которые помогли вывести его на мировую арену.

Фильм на английском, есть русские сабы:
👉 Смотреть на ютуб

@react_tg
👍18🔥62
🖥 Технические основы SEO для разработчиков React.

React разработчик Винкас Стонис собрал 12 пунктов по техническому SEO:

"Многие разработчики, даже опытные, ничего не знают о поисковой оптимизации (SEO). И я тоже долго не знал. SEO в основном невидим, поэтому его легко игнорировать"

Добавляйте в закладки чтобы не потерять:
👉 Читать статью

@react_tg
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥5🤡31
This media is not supported in your browser
VIEW IN TELEGRAM
💡 Play with Header on Page Transitions

Стильное, анимированное переключение между вкладками, реализованное c применением SCSS.

https://codepen.io/pehaa/pen/wvBLpNK

@react_tg
Please open Telegram to view this post
VIEW IN TELEGRAM
👍145🔥5
🖥 Простые способы повышения производительности вашего приложения на React без использования useMemo.

Несмотря на то, что использование useMemo и useCallback совершенно оправдано во многих случаях, и это отличные инструменты, они могут оказаться проблемными при неправильной эксплуатации.

Поэтому я собираюсь перечислить несколько аспектов, о которых следует помнить, когда ваше приложение работает неэффективно.

Читать

@react_tg
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12👍62
💡Совет React JS / JavaScript:

Нам не нужно использовать хуки при работе с формами в React. Мы можем обрабатывать изменения и отправлять их непосредственно в данные формы.

Посмотрите этот пример. Кроме того, мы получаем гораздо лучшую производительность (без повторного рендеринга).

#junior

@react_tg
👍274🔥4
This media is not supported in your browser
VIEW IN TELEGRAM
React Native: Свайп для удаления (Swipe to delete)

Ссылка на репозиторий:
Гитхаб

@react_tg
👍28🔥5🥰2🤣1
🖥 7 советов по очистке кода React

Читать

@react_tg
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
👍329🔥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
👍13🔥21
This media is not supported in your browser
VIEW IN TELEGRAM
💨 Card Hover Interactions — шикарная анимация текста.

https://codepen.io/hexagoncircle/pen/XWbWKwL

@react_tg
Please open Telegram to view this post
VIEW IN TELEGRAM
👍225🔥2
🖥 Топ-45 библиотек React

React просто великолепен: он крайне производителен и популярен во всем мире. Но не стоит игнорировать тот факт, что “из коробки” React предоставляет не так уж и много готовых решений.

Поэтому приходится искать дополнительные сторонние библиотеки. Они могут оказаться как высококачественными, так и написанными на скорую руку. Если вы новичок, то вам придется потратить довольно много времени на поиск наилучшего решения.

Сегодня проведем сравнительное обсуждение с целью детально разобраться в альтернативных решениях различных проблем React.

Читать

@react_tg
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🔥4👎2🥴21
🖥 Современный модульный лендинг React

Шаблоны лендингов очень распространены в интернете: легко собираются, удобны в использовании и выглядят отлично. Но это только в теории.

На практике большинство шаблонов либо красивые, но с неаккуратным кодом, либо наоборот: имеют приличный код, но выглядят ужасно.

Шаблон с разумным применением современных технологий отличается от них как небо и земля.

Читать
Код

@react_tg
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🔥43
Библиотеки react в 2023 году

Пожалуй, один из лучших обзоров библиотек React в 2023 году. Все разбито по категориям, а в конце каждого раздела вас ждут советы, которые позволят сделать правильный выбор.

Читать

@react_tg
👍16🔥21😱1
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 Storybook

Storybook — это проект для создания компонентов и страниц пользовательского интерфейса.

Storybook полезен для разработки пользовательского интерфейса, тестирования и создания документации.

🖥 Github
📝 Project

@react_tg
Please open Telegram to view this post
VIEW IN TELEGRAM
👍173🔥1
🖥 React. Компоненты

Читая документацию 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❤‍🔥11🔥1