Тег: react

Поверхностное vs. Глубокое сравнение в JavaScript: Раскрываем секреты производительности React

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

Поверхностное vs. Глубокое сравнение в JavaScript: Раскрываем секреты производительности React

11 дней назад
199
7 мин

Вот почему Angular проиграл React-у

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

19 дней назад
68
6 сек

Какой Front-End фреймворк наиболее активно развивается в 2024 году? — React vs Angular vs Vue vs Svelte

Да, я знаю. Интернет уже переполнен статьями вроде “React vs Angular vs Vue vs …”, и это действительно начинает раздражать.

image.png

Еще более раздражает то, что большинство таких статей полны поверхностной информации и заканчиваются стандартным «политически корректным» выводом, который можно свести к фразе: “все фреймворки хороши, выбор зависит от ваших предпочтений и конкретных нужд”. В результате читатель остается еще более запутанным.

21 ноября 2024
492
5 мин

React 19 и Next.js 14: простое сравнение

При создании современных веб-приложений React и Next.js являются двумя популярными вариантами. Но в чем разница между ними? Давайте рассмотрим React 19 и Next.js 14 в простых терминах.

React 19 и Next.js 14: простое сравнение

06 августа 2024
848
3 мин

Жизненный цикл компонентов в React: функциональные компоненты

React — это библиотека JavaScript для создания пользовательских интерфейсов, и ее основой являются компоненты. В React существует концепция "жизненного цикла компонентов", которая описывает различные этапы, через которые проходит компонент с момента создания до удаления. Для функциональных компонентов в React введены новые возможности с появлением хуков в React 16.8.

Жизненный цикл компонентов в React: функциональные компоненты

14 февраля 2024
1.5 тыс.
3 мин

Самый лучший современный JavaScript-фреймворк – персональный рейтинг

В этом видео я как фронтенд-разработчик со стажем расставлю современные javascript-фреймворки в порядке их "крутости".

25 октября 2023
776
19 сек

Лучшие практики для написания чистого React-кода

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

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

Лучшие практики для написания чистого React-кода

12 октября 2023
1.1 тыс.
4 мин

React Day Berlin 2017

Холодным субботним днем провели в Берлине конференцию React Day Berlin 2017. Прошло все гладко – слушатели довольны. Только мне вот показалось, что мало супа было на обед.

Фотографии из твиттера за авторством разных людей.

04 декабря 2017
3.1 тыс.
12 сек

Условные комментарии для Internet Explorer в React

Иногда сделать простые вещи очень непросто. Например, добавить условный комментарии для IE в html. Этим я сегодня и занимался.

В моем текущем проекте нам нужно было поддерживать css медиа-запросы в IE9. Для этого было решено использовать библиотеку media-match.

Что может быть проще? Пара строк кода с условным комментарием:

<!--[if lte IE 9]>
   <script src="/public/media.match.js">
<![endif]-->

Но все оказалось намного сложнее, так как мы используем React.js и делаем изоморфное одностраничное приложение. Кто бы знал, что React не рендерит на странице комментарии, помещенные в .jsx-файлы. Показынный ниже способ не работает:

renderHead: function() {
  return (
    <head>
      <!--[if lte IE 9]>
      <script src="/public/media.match.js"/>
      <![endif]-->
    </head>
  );
}

Единственный способ, который мне удалось найти – dangerouslySetInnerHTML для head, внутрь которого я поместил комментарий и все заработало:

renderHead: function() {
  return (
    <head dangerouslySetInnerHTML={{__html: '<!--[if lte IE 9]><script src="/public/media.match.js"></script><![endif]-->'}}>
    </head>
  );
}

Следует также отметить, что тэг script должен быть закрыт отдельно <script></script>, так как сокращение <script /> не работает в React.

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

Поэтому я, да простят меня парсерсы HTML в браузерах, положил условные комментарии внутри тэга meta:

renderHead() {
  return (
    var comment = '<!--[if lte IE 9]><script src="/public/media.match.js"></script><![endif]-->';
    <head>
      <title>Website title</title>
      <meta name="react-comment-hack" 
          dangerouslySetInnerHTML={{__html: comment}}>
      </meta>
    </head>
  );
}

Успешного «реакта».

© Автор Maks Nemisj

07 мая 2015
3.9 тыс.
1 мин
« Назад
Вперед »