This media is not supported in your browser
VIEW IN TELEGRAM
Scroll direction rotation — красивая галерея с эффектом наклона при скроллинге. Галерея написана с помощью SCSS и JavaScript.
https://codepen.io/choogoor/pen/bGjrWVL
@react_tg
https://codepen.io/choogoor/pen/bGjrWVL
@react_tg
❤7👍1
Поэтапный перевод учебника Patterns.dev, в котором представлен современный взгляд на шаблоны проектирования, рендеринга и производительности JavaScript.
🗄 Часть 1
🗄 Часть 2
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Перевод первой части учебника Patterns.dev
Привет! Меня зовут Айнур, и я frontend‑разработчик SimbirSoft. Более 6 лет я работаю над коммерческими проектами, создаю и улучшаю интерфейсы, поэтому в работе достаточно часто использую...
👍13🔥5❤1😱1
Тестируйте свои React-компоненты с помощью Nightwatch и Testing Library
Nightwatch и Testing Library — два крайне полезных инструмента для тестирования компонентов. Первая библиотека написана на Node.js и позволяет проводить полноценное сквозное тестирование веб-приложений и сайтов, написанных на JS. В свою очередь Testing Library более минималистичный инструмент, созданный специально для тестирования React-компонентов.
В этой статье вы научитесь:
— устанавливать новый проект React с помощью Vite, который также используется внутри Nightwatch для компонентного тестирования;
— подключать и конфигурировать Nightwatch и Testing Library;
— имитировать API запросы с помощью плагина
— писать комплексные React-компонентные тесты, используя Nightwatch и Testing Library.
https://habr.com/ru/companies/otus/articles/719266/
#react #qa
Nightwatch и Testing Library — два крайне полезных инструмента для тестирования компонентов. Первая библиотека написана на Node.js и позволяет проводить полноценное сквозное тестирование веб-приложений и сайтов, написанных на JS. В свою очередь Testing Library более минималистичный инструмент, созданный специально для тестирования React-компонентов.
В этой статье вы научитесь:
— устанавливать новый проект React с помощью Vite, который также используется внутри Nightwatch для компонентного тестирования;
— подключать и конфигурировать Nightwatch и Testing Library;
— имитировать API запросы с помощью плагина
@nightwatch/api-testing
;— писать комплексные React-компонентные тесты, используя Nightwatch и Testing Library.
https://habr.com/ru/companies/otus/articles/719266/
#react #qa
👍9❤3🔥2
📚 Подборка бесплатных и актуальных книг по всем языкам программирования.
Java книги
Книги датасаентиста
Golang библиотека
Python библиотека
Крупнейший склад ит-книг
C++ книги
C# книги
Frontend книги
Книги по базам данных
Топ книги по Linux
Библиотека машинного обучения
Сохраняем себе, чтобы не потерять
Java книги
Книги датасаентиста
Golang библиотека
Python библиотека
Крупнейший склад ит-книг
C++ книги
C# книги
Frontend книги
Книги по базам данных
Топ книги по Linux
Библиотека машинного обучения
Сохраняем себе, чтобы не потерять
👍7❤1🔥1
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Building a Full Stack Web Application with Kotlin and React - Part 1/2 - Backend + Frontend
This video is based on this amazing tutorial by the people at JetBrains about building a full stack web app with Kotlin and React: https://kotlinlang.org/docs/multiplatform-full-stack-app.html
Part 2 will add the ability to delete items and enter new ones…
Part 2 will add the ability to delete items and enter new ones…
👍8❤1🔥1😁1
This media is not supported in your browser
VIEW IN TELEGRAM
Gallery animation — анимированная галерея с эффектом при прокрутке. Реализована с помощью CSS и JavaScript.
https://codepen.io/Tiopayo/pen/GRYoMEZ
@javascriptv
https://codepen.io/Tiopayo/pen/GRYoMEZ
@javascriptv
👍10❤3🔥2
⚡ Подборка ресурсов с полезными шпаргалками для фронтенд-разработчика:
▫️htmlcheatsheet
▫️cssreference
▫️reactcheatsheet
▫️cheatography
▫️javascriptcheatsheet
Сохраняем себе, чтобы не потерять
@react_tg
▫️htmlcheatsheet
▫️cssreference
▫️reactcheatsheet
▫️cheatography
▫️javascriptcheatsheet
Сохраняем себе, чтобы не потерять
@react_tg
Htmlcheatsheet
HTML Cheat Sheet
Online interactive HTML Cheat Sheet contains useful code examples and web developer tools, markup generators and more.
👍16❤3🥰1
React recursively re-renders child components, but there is a nuance
https://alexsidorenko.com/blog/react-render-children-prop #react
https://alexsidorenko.com/blog/react-render-children-prop #react
Alexsidorenko
React recursively re-renders child components, but there is a nuance | Alex Siodrenko
Component composition as an alternative to memoization
👍9🔥2❤1
This media is not supported in your browser
VIEW IN TELEGRAM
Mountain Hero Page — красивая страница с анимированным скроллом. Страница реализована с помощью CSS и JavaScript.
https://codepen.io/aryancodeworm/pen/rNKqgpY
@react_tg
https://codepen.io/aryancodeworm/pen/rNKqgpY
@react_tg
👍17❤5🔥3
Как писать комментарии в React: хорошие, плохие и уродливые
Когда дело доходит до написания комментариев, React предлагает синтаксис
В этой статье вы можете посмотреть, как использовать обычные комментарии JSX и ещё 2 других способа комментирования, которые могут быть лучше:
https://dmitripavlutin.com/react-comments/
#react #фронтенд
Когда дело доходит до написания комментариев, React предлагает синтаксис
{/* Comment */}
, который может быть немного многословен.В этой статье вы можете посмотреть, как использовать обычные комментарии JSX и ещё 2 других способа комментирования, которые могут быть лучше:
https://dmitripavlutin.com/react-comments/
#react #фронтенд
❤7👍2🔥2
5 ошибок, которые можно допустить при запуске первого проекта React
Даже самая лучшая документация не охватывает абсолютно всё. Поэтому, работая с новым инструментом, можно столкнуться с различного рода ошибками и проблемами. Это касается даже такой популярной библиотеки, как React.
В этой статье автор поделился ошибками, которые допустил он и можете допустить вы, начиная свой первый проект:
https://css-tricks.com/5-mistakes-starting-react/
@react_tg
Даже самая лучшая документация не охватывает абсолютно всё. Поэтому, работая с новым инструментом, можно столкнуться с различного рода ошибками и проблемами. Это касается даже такой популярной библиотеки, как React.
В этой статье автор поделился ошибками, которые допустил он и можете допустить вы, начиная свой первый проект:
https://css-tricks.com/5-mistakes-starting-react/
@react_tg
👍11❤3🔥1
⚡ Как избежать повторного рендеринга компонентов React
https://blog.openreplay.com/how-to-stop-react-components-from-rerendering/
@react_tg
https://blog.openreplay.com/how-to-stop-react-components-from-rerendering/
@react_tg
👍8🔥6🤨3❤2
7 методов оптимизации производительности React
1. Использование React.iss.onemo (HOC, а не хук)
2. Оптимизация обработчиков событий с помощью useCallback
3. Виртуализация длинных списков с помощью react-window
4. Ленивая загрузка компонентов с помощью React.lazy и Suspense
5. Использование API React.Profiler для выявления узких мест производительности
6. Оптимизация обновления состояний с помощью Immer
7. Использование троттлинга и дебаунсинга для обработчиков ввода
@react_tg
1. Использование React.iss.onemo (HOC, а не хук)
import React, { memo } from 'react'
interface Props {
title: string
subtitle: string
}
const MyComponent: React.FC<Props> = memo(({ title, subtitle }) => {
return (
<div>
<h1>{title}</h1>
<h2>{subtitle}</h2>
</div>
)
})
2. Оптимизация обработчиков событий с помощью useCallback
import React, { useState, useCallback } from 'react'
const Counter: React.FC = () => {
const [count, setCount] = useState(0) const increment = useCallback(() => {
setCount(prevCount => prevCount + 1)
}, [])
return (
<div>
<p>Count: {count}</p>
<button onClick={increment}>Increment</button>
</div>
)
}
3. Виртуализация длинных списков с помощью react-window
import React from 'react'
import { FixedSizeList as List } from 'react-window'
const Row: React.FC<{ index: number; style: React.CSSProperties }> = ({
index,
style,
}) => {
return (
<div style={style}>
<p>{`Row ${index}`}</p>
</div>
)
}
const VirtualizedList: React.FC = () => {
const itemCount = 1000
return (
<List height={500} itemCount={itemCount} itemSize={50} width={300}>
{Row}
</List>
)
}
4. Ленивая загрузка компонентов с помощью React.lazy и Suspense
import React, { lazy, Suspense } from 'react'
const LazyLoadedComponent = lazy(() => import('./LazyLoadedComponent'))
const App: React.FC = () => {
return (
<div>
<Suspense fallback={<div>Loading...</div>}>
<LazyLoadedComponent />
</Suspense>
</div>
)
}
5. Использование API React.Profiler для выявления узких мест производительности
import React, { Profiler } from 'react'
const onRender = (
id: string,
phase: 'mount' | 'update',
actualDuration: number,
baseDuration: number,
startTime: number,
commitTime: number,
interactions: Set<{ id: number; name: string; timestamp: number }>
) => {
console.log('Profiler:', {
id,
phase,
actualDuration,
baseDuration,
startTime,
commitTime,
interactions,
})
}
const App: React.FC = () => {
return (
<Profiler id="MyComponent" onRender={onRender}>
<MyComponent />
</Profiler>
)
}
6. Оптимизация обновления состояний с помощью Immer
import React, { useState } from 'react'
import produce from 'immer'
interface User {
id: number
name: string
}
const App: React.FC = () => {
const [users, setUsers] = useState<User[]>([
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' },
])
const updateUser = (id: number, newName: string) => {
setUsers(
produce((draftUsers: User[]) => {
const user = draftUsers.find(user => user.id === id)
if (user) {
user.name = newName
}
})
)
}
return (
// ...
)
}
7. Использование троттлинга и дебаунсинга для обработчиков ввода
import React, { useState, useCallback } from 'react'
import { debounce } from 'lodash-es'
const SearchBox: React.FC = () => {
const [searchTerm, setSearchTerm] = useState('')
const handleSearch = useCallback(
debounce((value: string) => {
setSearchTerm(value)
}, 300),
[]
)
const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {
handleSearch(event.target.value)
}
return (
<div>
<input type="text" onChange={handleChange} />
</div>
)
}
@react_tg
👍21❤10🔥4
This media is not supported in your browser
VIEW IN TELEGRAM
Parallax Article Card — форма с эффектом параллакса при наведении. Реализована с помощью SCSS и JavaScript.
https://codepen.io/mprquinn/pen/zdKqGE
@react_tg
https://codepen.io/mprquinn/pen/zdKqGE
@react_tg
👍15
📚7 библиотек для анимаций на React
1. React Spring
React-spring - это библиотека, основанная на принципах физики пружин, которая позволяет создавать анимацию пользовательского интерфейса и удовлетворить большинство ваших потребностей в этой области. Ее гибкие инструменты позволяют реализовать ваши идеи и создать интерактивные интерфейсы с анимацией.
2. Framer Motion
Framer Motion - это библиотека анимации для React, которая подходит для использования в проектах. Она использует функциональность, предоставляемую Framer - лучшим инструментом для прототипирования команд. Библиотека создана на основе открытого исходного кода...
3. TS Particles
С tsParticles вы можете легко создавать подробные настройки для частиц и анимаций конфетти и фейерверков, которые могут использоваться как анимированные фоны для вашего сайта. Эта библиотека предоставляет готовые компоненты для работы с React, Angular, Svelte и Web Components.
4. Green Sock
GSAP, или GreenSock Animation Platform, является платформой для анимации, которая может анимировать любой элемент, на который можно нажать (CSS свойства, SVG, React Canvas, общие объекты и многое другое), решая множество проблем с несоответствиями в разных браузерах, и все это происходит с ошеломляющей скоростью.
5. Remotion
Remotion — это инструмент, который позволяет создавать видео и анимации с использованием HTML, CSS, JavaScript и TypeScript, и даже неспециалисты могут освоить этот процесс. Основываясь на своем программистском опыте, вы можете создавать анимации и видео с помощью Remotion.
6. React Move
React Move — легковесная библиотека, позволяющая разработчикам создавать красивые анимации на основе данных. Она наглядно отражает события жизненного цикла при загрузке страниц, и может быть использована для создания привлекательных эффектов в вашем проекте.
7. React Awesome Reveal
React Awesome Reveal позволяет создавать анимацию появления элементов с помощью Intersection Observer API, который определяет, когда элементы становятся видимыми в окне приложения.
Emotion использует эффективную технологию анимации CSS, которая повышает производительность и обеспечивает аппаратное ускорение.
@react_tg
1. React Spring
React-spring - это библиотека, основанная на принципах физики пружин, которая позволяет создавать анимацию пользовательского интерфейса и удовлетворить большинство ваших потребностей в этой области. Ее гибкие инструменты позволяют реализовать ваши идеи и создать интерактивные интерфейсы с анимацией.
2. Framer Motion
Framer Motion - это библиотека анимации для React, которая подходит для использования в проектах. Она использует функциональность, предоставляемую Framer - лучшим инструментом для прототипирования команд. Библиотека создана на основе открытого исходного кода...
3. TS Particles
С tsParticles вы можете легко создавать подробные настройки для частиц и анимаций конфетти и фейерверков, которые могут использоваться как анимированные фоны для вашего сайта. Эта библиотека предоставляет готовые компоненты для работы с React, Angular, Svelte и Web Components.
4. Green Sock
GSAP, или GreenSock Animation Platform, является платформой для анимации, которая может анимировать любой элемент, на который можно нажать (CSS свойства, SVG, React Canvas, общие объекты и многое другое), решая множество проблем с несоответствиями в разных браузерах, и все это происходит с ошеломляющей скоростью.
5. Remotion
Remotion — это инструмент, который позволяет создавать видео и анимации с использованием HTML, CSS, JavaScript и TypeScript, и даже неспециалисты могут освоить этот процесс. Основываясь на своем программистском опыте, вы можете создавать анимации и видео с помощью Remotion.
6. React Move
React Move — легковесная библиотека, позволяющая разработчикам создавать красивые анимации на основе данных. Она наглядно отражает события жизненного цикла при загрузке страниц, и может быть использована для создания привлекательных эффектов в вашем проекте.
7. React Awesome Reveal
React Awesome Reveal позволяет создавать анимацию появления элементов с помощью Intersection Observer API, который определяет, когда элементы становятся видимыми в окне приложения.
Emotion использует эффективную технологию анимации CSS, которая повышает производительность и обеспечивает аппаратное ускорение.
@react_tg
👍13🔥8❤5🤨1
Million.js — ориентированная на производительность замена VDOM для React
Начавшаяся два года назад как небольшая, не зависящая от библиотек реализация виртуального DOM, Million сейчас — это библиотека, которая ускоряет работу компонентов React до 70 %.
Начавшаяся два года назад как небольшая, не зависящая от библиотек реализация виртуального DOM, Million сейчас — это библиотека, которая ускоряет работу компонентов React до 70 %.
👍9❤1🔥1🤯1