This media is not supported in your browser
VIEW IN TELEGRAM
⚛️ Я не слишком беспокоюсь о повторных рендерах в React. (если только я не вижу проблем с производительностью).
Однако мне важно понимать, как работает процесс рендеринга.
@react_tg
Однако мне важно понимать, как работает процесс рендеринга.
@react_tg
👍20❤4🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Совет React: используйте пользовательский хук для обработки состояний массива в ваших компонентах ↓
@react_tg
@react_tg
❤34💯5👍3🔥3
Чистая архитектура фронтенда
В этой статье речь пойдет об архитектуре фронтенда, проектирование которой подчиняется множеству принципов, в том числе SOLID, KISS, DRY и DDD.
В чем важность архитектуры фронтенда?
Функциональные и нефункциональные требования должны применяться не только к бэкенду, но и к фронтенду. Именно архитектура фронтенда позволяет полностью реализовать потребности бизнеса. Кроме того, она дает более четкое представление о сложности проектов, тем самым сокращая время их создания, риски и стоимость. Однако, на мой взгляд, наибольшая ценность фронтенд-архитектуры заключается в том, что она обеспечивает поддерживаемость и масштабируемость любого проекта.
Что представляет собой архитектура фронтенда?
📌 Читать
@react_tg
В этой статье речь пойдет об архитектуре фронтенда, проектирование которой подчиняется множеству принципов, в том числе SOLID, KISS, DRY и DDD.
В чем важность архитектуры фронтенда?
Функциональные и нефункциональные требования должны применяться не только к бэкенду, но и к фронтенду. Именно архитектура фронтенда позволяет полностью реализовать потребности бизнеса. Кроме того, она дает более четкое представление о сложности проектов, тем самым сокращая время их создания, риски и стоимость. Однако, на мой взгляд, наибольшая ценность фронтенд-архитектуры заключается в том, что она обеспечивает поддерживаемость и масштабируемость любого проекта.
Что представляет собой архитектура фронтенда?
📌 Читать
@react_tg
👍23❤5🔥3
🔥 Дайджест полезных материалов из мира React за неделю
Почитать:
— Сложность алгоритмов. Разбор Big O
— Я счастлив, что больше не веб-разработчик
— Mobile Web, навигация и при чем тут Nginx
— Микрофронтенд для самых маленьких
— Кастомизация бессерверных функций без применения промежуточного ПО
— KISS your website или как написать уважаемый сайт на аутсорсе, глава первая
— Что выбрать: Npm, Yarn или Pnpm?
— Pixel Combats Api
— Анатомия shadcn/ui
— Валидация формы с помощью AJV, Vue.js и TypeScript
— How Validate Form Input Data In React Or Any JavaScript Web Application ?
— Fixing Fetch Waterfalls in React
— Svelte journey | Part 2
— How many of you use cloud emulators for testing?
— Svelte : Toji Fushiguro of Javascript Frameworks.
— Efficient React Development: A Deep Dive into Components, Hooks, and Performance Optimization
— Unveiling the Power of React Hooks: A Comprehensive Guide
— Tips for styling React apps in JavaScript
— This Week In React #167: Hydration, Remix, Server Components, cache, perf, Glow, Unistyles, Expo, :has(), Tailwind, date-fns...
— Mastering Redux Toolkit in Your React Projects
Посмотреть:
🌐 Type Predicates Solve This Common TypeScript Error (⏱ 05:01)
🌐 You Should Be Using Types Instead Of Interfaces In TypeScript (⏱ 00:52)
Хорошего дня!
@react_tg
Почитать:
— Сложность алгоритмов. Разбор Big O
— Я счастлив, что больше не веб-разработчик
— Mobile Web, навигация и при чем тут Nginx
— Микрофронтенд для самых маленьких
— Кастомизация бессерверных функций без применения промежуточного ПО
— KISS your website или как написать уважаемый сайт на аутсорсе, глава первая
— Что выбрать: Npm, Yarn или Pnpm?
— Pixel Combats Api
— Анатомия shadcn/ui
— Валидация формы с помощью AJV, Vue.js и TypeScript
— How Validate Form Input Data In React Or Any JavaScript Web Application ?
— Fixing Fetch Waterfalls in React
— Svelte journey | Part 2
— How many of you use cloud emulators for testing?
— Svelte : Toji Fushiguro of Javascript Frameworks.
— Efficient React Development: A Deep Dive into Components, Hooks, and Performance Optimization
— Unveiling the Power of React Hooks: A Comprehensive Guide
— Tips for styling React apps in JavaScript
— This Week In React #167: Hydration, Remix, Server Components, cache, perf, Glow, Unistyles, Expo, :has(), Tailwind, date-fns...
— Mastering Redux Toolkit in Your React Projects
Посмотреть:
🌐 Type Predicates Solve This Common TypeScript Error (⏱ 05:01)
🌐 You Should Be Using Types Instead Of Interfaces In TypeScript (⏱ 00:52)
Хорошего дня!
@react_tg
👍7❤3🔥1
И в этом подробном руководстве объясняет, как это сделать с помощью Cypress.
Вы узнаете, что такое сквозное тестирование, как организовать и запустить тесты, как отладить код и многое другое.
https://www.freecodecamp.org/news/cypress-for-end-to-end-testing-react-apps/
@react_tg
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🤡2❤1🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
https://codepen.io/pavlovsk/pen/OXGdoN
@react_tg
Please open Telegram to view this post
VIEW IN TELEGRAM
👍26🔥5❤2💯1
Как реализовать простой контроль версий с помощью JavaScript, чтобы лучше разобраться в Git
Что такое Git и управление версиями в целом?
Это система, которая помогает отслеживать проект во времени. Так, с помощью Git мы можем легко погрузиться в историю исходного кода и посмотреть, как он выглядел в определенное время в прошлом.
Зачем разбираться в Git?
Во-первых, чтобы не использовать команды бездумно, когда что-то пойдет не так. Во-вторых, важно понимать, как работает система, с которой мы взаимодействуем каждый день.
Мы разберем основные понятия Git на примере реализации упрощенной системы управления версиями под названием Gitj.
Реализация
Выполнение первой команды Init
Как вы, наверное, знаете, мы запускаем проект командой git init, после чего Git создает папку .git и сохраняет в ней данные. Нам предстоит это реализовать.
Две важные папки, которые создает git, — это refs и objects. Objects (объекты) — это строительные блоки Git. Они могут быть 3 типов (на самом деле их 4): commit, tree и blob. Сейчас мы подробно рассмотрим каждый из этих типов. В папке refs есть подпапка heads, содержащая ветви и последний коммит каждой ветви (из названия должно быть понятно, что в ней хранится голова ветви). У нас также есть важный файл HEAD, который хранит текущую ветвь или коммит (иногда необходимо выполнить проверку в коммите, а не в ветви).
Создадим эти папки при вызове функции init.
Git Add. Добавление файлов в индекс
📌 Продолжение
@react_tg
Что такое Git и управление версиями в целом?
Это система, которая помогает отслеживать проект во времени. Так, с помощью Git мы можем легко погрузиться в историю исходного кода и посмотреть, как он выглядел в определенное время в прошлом.
Зачем разбираться в Git?
Во-первых, чтобы не использовать команды бездумно, когда что-то пойдет не так. Во-вторых, важно понимать, как работает система, с которой мы взаимодействуем каждый день.
Мы разберем основные понятия Git на примере реализации упрощенной системы управления версиями под названием Gitj.
Реализация
Выполнение первой команды Init
Как вы, наверное, знаете, мы запускаем проект командой git init, после чего Git создает папку .git и сохраняет в ней данные. Нам предстоит это реализовать.
Две важные папки, которые создает git, — это refs и objects. Objects (объекты) — это строительные блоки Git. Они могут быть 3 типов (на самом деле их 4): commit, tree и blob. Сейчас мы подробно рассмотрим каждый из этих типов. В папке refs есть подпапка heads, содержащая ветви и последний коммит каждой ветви (из названия должно быть понятно, что в ней хранится голова ветви). У нас также есть важный файл HEAD, который хранит текущую ветвь или коммит (иногда необходимо выполнить проверку в коммите, а не в ветви).
Создадим эти папки при вызове функции init.
const fs = require("fs");
function init() {
// создается папка .gitj и подпапки .gitj/objects,.gitj/refs и .gitj/refs/heads
fs.mkdirSync(".gitj");
fs.mkdirSync(".gitj/objects");
fs.mkdirSync(".gitj/refs");
fs.mkdirSync(".gitj/refs/heads");
// создается файл с именем .gitj/refs/heads/master
fs.writeFileSync(".gitj/refs/heads/master", "");
// создается файл с именем .gitj/HEAD
fs.writeFileSync(".gitj/HEAD", "ref: refs/heads/master");
}
init();
Git Add. Добавление файлов в индекс
@react_tg
Please open Telegram to view this post
VIEW IN TELEGRAM
❤12👍11🔥1
Поговорим о принципах SOLID с точки зрения приложений React. Я прекрасно понимаю, что статей на эту тему уже достаточно много, и знаю это потому, что прочитал большинство из них.
Должен сказать, что не согласен с тем, как подается информация в таких материалах (иначе я бы, конечно, не стал публиковать эту статью).
Проблема, на мой взгляд, заключается в том, что авторы рассказывают только о том, как прекрасны принципы SOLID, не упоминая об их возможных изъянах и подводных камнях.
Никто не задается вопросом: а применимы ли вообще принципы SOLID в React-приложениях? Именно это мы и обсудим, так что читайте дальше.
@react_tg
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16❤3🥴3🔥1🤡1
This media is not supported in your browser
VIEW IN TELEGRAM
🍔 Beat Burger
Приложение на React, анимированное библиотекой gsap. При нажатии на элементы проигрываются звуки.
#react #js
https://codepen.io/ste-vg/pen/MWpxKYR
@react_tg
Приложение на React, анимированное библиотекой gsap. При нажатии на элементы проигрываются звуки.
#react #js
https://codepen.io/ste-vg/pen/MWpxKYR
@react_tg
❤18👍9🔥2
Никто не будет спорить, что Figma круто изменила работу для UX/UI дизайнера, делая все проще и объединяя все необходимое в одном месте. Однако даже со всеми потрясающими возможностями и плагинами в Figma существуют и другие приложения и сайты, которыми дизайнеры пользуются каждый день и которые Figma заменить не может. Каждое из них выполняет особую задачу, которая выходит за пределы возможностей Figma. Поэтому хочется поделиться 7 приложениями и сайтами, которые можно использовать вместе с Figma. Этот список покажет, что иногда для достижения лучших результатов нужно использовать несколько инструментов.
1. Mobbin
2. Lyssna
3. Maze
4. Typeform
5. Fonts in Use
6. Designstripe
7. PaletteMaker
▪Читать
@react_tg
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9🔥2🥰1😢1
•HTML: 🌐 http://w3schools.com
•CSS: 🎨 http://web.dev/learn/css
•JavaScript: 🚀 http://javascript.info
•Git & GitHub: 📚 http://git-scm.com
•SQL: 🔍 http://SQLzap.com
@react_tg
Please open Telegram to view this post
VIEW IN TELEGRAM
❤12🔥5👍2
This media is not supported in your browser
VIEW IN TELEGRAM
@react_tg
Please open Telegram to view this post
VIEW IN TELEGRAM
👍22🔥4❤2
Представляем список из семи проектов, которые, подходят для того, чтобы стать получить хорошую практику на React, - от простых до сложных приложений.
Так же описан весь технологический стек, который можно использовать для создания каждого проекта, а также о том, как пошагово сделать каждый из них.
▪Читать
@react_tg
Please open Telegram to view this post
VIEW IN TELEGRAM
❤15👍7🔥3
https://github.com/szimek/sharedrop #opensource
@react_tg
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥3❤1🥰1
This media is not supported in your browser
VIEW IN TELEGRAM
Стильный слайдер для сайта
#html #css #js #slider
https://codepen.io/theseventh/pen/LYVqMYb
@javascriptv
#html #css #js #slider
https://codepen.io/theseventh/pen/LYVqMYb
@javascriptv
❤12🔥4👎1🥰1
Примеры профессионального использования всплывающих окон включают раскрывающиеся меню навигации, средства выбора дат и экскурсии во время процесса регистрации.
В экосистеме React эту потребность удовлетворяют многие библиотеки, предлагая различные уровни настройки, стратегии позиционирования и оперативности.
1 Popper.js
2 act-tiny-popover
3 react-laag
4 reactjs-popup
5 react Joyride
#js #react #ru
▪ Подробнее
@react_tg
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16❤4🔥2
⚛ Создание UI-компонентов React на продвинутом уровне
React — хорошая библиотека. Так давайте сделаем ее еще лучше, создавая многоразовые компоненты на высокопрофессиональном уровне.
Для использования этого руководства достаточно базовых знаний о React, TypeScript и Tailwind CSS.
В качестве примера поработаем с button, но принципы, которым будем следовать здесь, применимы к любому HTML-тегу.
Приведенный выше код работает, но что, если понадобится ввести ARIA (accessible rich internet application attribute — доступные полнофункциональные интернет-приложения), ссылки или любые другие свойства обычного тега button?
Можно просто добавить больше свойств и на этом закончить.
Это одно из решений, но оно не эффективно. Чтобы сделать его более действенным, поработаем с TypeScript и React. Быстро создать проект с использованием React и TypeScript поможет документация Vite.
Первым шагом будет импорт необходимых типов из React и создание интерфейса для свойств кнопки (button).
📌 Продолжение
@react_tg
React — хорошая библиотека. Так давайте сделаем ее еще лучше, создавая многоразовые компоненты на высокопрофессиональном уровне.
Для использования этого руководства достаточно базовых знаний о React, TypeScript и Tailwind CSS.
В качестве примера поработаем с button, но принципы, которым будем следовать здесь, применимы к любому HTML-тегу.
const Button = ({children, className}) => {
return (
<button className={className}>{children}</button>
)
}
Приведенный выше код работает, но что, если понадобится ввести ARIA (accessible rich internet application attribute — доступные полнофункциональные интернет-приложения), ссылки или любые другие свойства обычного тега button?
Можно просто добавить больше свойств и на этом закончить.
const Button = ({children, className, ref, type}) => {
return (
<button className={className} ref={ref} type={type}>{children}</button>
)
}
Это одно из решений, но оно не эффективно. Чтобы сделать его более действенным, поработаем с TypeScript и React. Быстро создать проект с использованием React и TypeScript поможет документация Vite.
Первым шагом будет импорт необходимых типов из React и создание интерфейса для свойств кнопки (button).
📌 Продолжение
@react_tg
👍16🔥3❤🔥2
Искусство манипулирования массивами JavaScript: исследование метода Array.prototype.filter()
Такие методы, как Array.prototype.filter(), Array.prototype.map() и Array.prototype.reduce(), являются неотъемлемой частью парадигмы функционального программирования JavaScript. Но достаточно ли хорошо вы понимаете, как работает метод filter? Не будем вдаваться в подробности реализации, а рассмотрим только внутренний механизм этого метода. “Дьявол кроется в деталях” — попробуем копнуть поглубже и поискать этого “дьявола” в языке JavaScript.
В JavaScript массивы не являются “примитивными значениями”, а рассматриваются как “объекты”, а при слове “объект” на ум приходит другое слово — “метод”. В этой статье хочу обратить ваше внимание на неизменяющие (Non-Mutating ) и изменяющие (Mutating) методы массива. На простом языке разницу между ними я бы объяснил так: методы, которые не изменяют исходный массив, а создают или возвращают новый массив с необходимыми изменениями, называются неизменяющими, а изменяющие методы — это те, которые изменяют исходный массив.
Array.prototype.filter() — один из неизменяющих методов, возвращающий новый массив. Возвращаемый массив содержит элементы, отфильтрованные из исходного массива на основе теста, реализованного функцией обратного вызова, переданной в качестве входного аргумента методу .filter().
Сигнатура метода “filter” выглядит следующим образом:
📌Смотреть
@react_tg
Такие методы, как Array.prototype.filter(), Array.prototype.map() и Array.prototype.reduce(), являются неотъемлемой частью парадигмы функционального программирования JavaScript. Но достаточно ли хорошо вы понимаете, как работает метод filter? Не будем вдаваться в подробности реализации, а рассмотрим только внутренний механизм этого метода. “Дьявол кроется в деталях” — попробуем копнуть поглубже и поискать этого “дьявола” в языке JavaScript.
В JavaScript массивы не являются “примитивными значениями”, а рассматриваются как “объекты”, а при слове “объект” на ум приходит другое слово — “метод”. В этой статье хочу обратить ваше внимание на неизменяющие (Non-Mutating ) и изменяющие (Mutating) методы массива. На простом языке разницу между ними я бы объяснил так: методы, которые не изменяют исходный массив, а создают или возвращают новый массив с необходимыми изменениями, называются неизменяющими, а изменяющие методы — это те, которые изменяют исходный массив.
Array.prototype.filter() — один из неизменяющих методов, возвращающий новый массив. Возвращаемый массив содержит элементы, отфильтрованные из исходного массива на основе теста, реализованного функцией обратного вызова, переданной в качестве входного аргумента методу .filter().
Сигнатура метода “filter” выглядит следующим образом:
📌Смотреть
@react_tg
👍19❤4🔥4
Разработка веб-дэшбордов с использованием React, Material UI, Tailwind CSS и Nivo. Часть 1
Визуализация данных — важнейший компонент процесса принятия обоснованных решений и представления информации в удобном для пользователя виде. Она позволяет преобразовывать сложные данные в четкие и осмысленные визуальные картины, благодаря чему организации могут решать различные задачи и повышать эффективность своей работы.
Для визуализации данных существует множество платформ бизнес-аналитики (BI). В качестве примера можно привести Tableau, Power BI, QlikView и Looker. Однако они могут иметь ограничения и отличаться высокой стоимостью. Альтернативным подходом к использованию BI-инструментов является применение библиотек визуализации данных, таких как Nivo, при веб-разработке фронтенда.
В этом цикле из трех частей мы рассмотрим, как создавать дэшборды, отслеживающие производительность сайта, с помощью React, Tailwind CSS, Material UI и Nivo. Если вы разработчик, желающий усовершенствовать навыки визуализации данных, владелец бизнеса, стремящийся получить представление о данных, или просто человек, интересующийся миром React и визуализации данных, рекомендуем приступить к работе после прочтения серии этих статей.
Итак, начнем!
📌 Читать
@react_tg
Визуализация данных — важнейший компонент процесса принятия обоснованных решений и представления информации в удобном для пользователя виде. Она позволяет преобразовывать сложные данные в четкие и осмысленные визуальные картины, благодаря чему организации могут решать различные задачи и повышать эффективность своей работы.
Для визуализации данных существует множество платформ бизнес-аналитики (BI). В качестве примера можно привести Tableau, Power BI, QlikView и Looker. Однако они могут иметь ограничения и отличаться высокой стоимостью. Альтернативным подходом к использованию BI-инструментов является применение библиотек визуализации данных, таких как Nivo, при веб-разработке фронтенда.
В этом цикле из трех частей мы рассмотрим, как создавать дэшборды, отслеживающие производительность сайта, с помощью React, Tailwind CSS, Material UI и Nivo. Если вы разработчик, желающий усовершенствовать навыки визуализации данных, владелец бизнеса, стремящийся получить представление о данных, или просто человек, интересующийся миром React и визуализации данных, рекомендуем приступить к работе после прочтения серии этих статей.
Итак, начнем!
📌 Читать
@react_tg
🔥9👍7❤2👎1