Рубрика «ReactJS» - 44

И в чем же проблема?

Я начал изучать React и Redux не так давно, но он уже успел изрядно потрепать мне нервы. Буквально над каждым действием приходится задумываться — почти никакие изменения в коде невозможны без того, чтоб что-то оторвать. Чтоб просто получить список постов по API и вывести их, надо, пожалуй, написать не меньше сотни строк кода — создать корневой контейнер, создать store, добавить action для запроса к API, для успешного результата запроса, для неудачного результата запроса, создать action-creators, сматчить action-creators и props, сматчить dispatch и props, написать reducer на каждый action… Ух, продолжать не хочется. И все это мы должны делать заново для каждого веб-приложения — крайне нерациональная трата сил программиста.

Да, можно сказать новичку: "Смотри, тут десяток пакетов, которые могут сделать каждое действие из этого списка вместо тебя. Выбирай и пользуйся!" Но проблема в том, что надо разобраться в настройке и воспользоваться десятком пакетов, позаботившись о том, чтоб они совпадали с версией, которая описана в документации и не вступали друг с другом в конфликты… Слишком сложно. Хочется чего-то проще, такого же простого, как в мире Django, из которого я пришел. Какой-то один пакет, после установки которого в store сами по волшебству складываются все нужные данные — бери и пользуйся.

Ну, я и решил — если такого решения нет, напишу-ка я его сам.

Постановка задачи

Убирая всю лирику из первого абзаца, получаю задачу — нам нужно создать инструмент, который будет:

  1. Делать асинхронный GET-запрос к REST API.
  2. Анализировать полученные данные и данные, лежащие в store, и, если там не хватает связанных по foreign key данных, делать еще запросы.
  3. Складывать полученные данные в store и следить за актуальностью хранящихся данных.

По описанию выходит, что состоять пакет будет из action creator'а, middleware и reducer'а.

Читать полностью »

Анонс RamblerFront& #1 - 1

8 июня на Мансарде Rambler&Co состоится первый внешний RamblerFront& meetup, на котором наши сотрудники поделятся прикладными знаниями в области frontend-разработки.
Читать полностью »

image

Автор @pshrmnОригинальная статьяВремя чтения: 10 минут

React Router v4 — это переработанный вариант популярного React дополнения. Зависимые от платформы конфигурации роутов из прошлой версии были удалены и теперь всё является простыми компонентами.
Читать полностью »

CSS в JavaScript: будущее компонентных стилей - 1

С помощью встроенных стилей можно получить все программные возможности JavaScript, что дает нам преимущества в виде предварительного процессора CSS (переменные, примеси и функции), а также помогает решить множество проблем, возникающих в CSS, таких как конфликт пространства имен и применения стилей.

Чтобы получить больше информации о проблемах CSS, решаемых в JavaScript, вы можете посмотреть презентацию «React CSS в JS» (React CSS in JS), а для того чтобы изучить улучшение производительности с помощью Aphrodite, прочитайте статью Inline CSS at Khan Academy: Aphrodite. Если же вы хотите узнать больше о лучших практиках CSS в JavaScript, ознакомьтесь с руководством Airbnb (Airbnb’s styleguide).

Здесь речь пойдет об использовании встроенных стилей JavaScript для создания компонентов, позволяющих решить основные проблемы дизайна, о которых я рассказывал ранее в статье «Прежде чем осваивать дизайн, необходимо ознакомиться с основами» (Before you can master design, you must first master the fundamentals).

Читать полностью »

На субботу 3 июня в Москве обещают +11 и лёгкий дождь. Нелётная погода, ну то есть не велосипедная и не особо прогулочная. А душа требует лета, общения, азарта и новых событий. Мы придумали для вас мега насыщенный день в Телеграфе, где пройдёт IT-конференция «Продвижение». Неважно, фанатеете вы от React, занимаетесь дизайном, пытаетесь внедрить Agile или просто считаете себя гиком и книголюбом, — места, нетворкинга и интересных моментов программы хватит всем. Дело за малым — зарегистрироваться и прийти. Ну и почитать подробности под катом.

ИТ-конференция «Продвижение»: суббота с пользой - 1 
Читать полностью »

Как добиться повторного использования React компонентов (Перевод) - 1

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

Читать полностью »

На хабре есть множество статей про react native, но я не могу понять кем и для кого они написаны. Почти все имеют такой посыл: «Ну, это такой же React как в вебе, только на мобилках». А вот люди, которые занимаются нативной разработкой под мобильные устройства в пролете, ведь разобраться в реакте после Android без двух литров без глубокого изучения никак не получится. А я расскажу за реакт опираясь, внезапно, не на веб разработку, а на Android. Всем заинтересованным добро пожаловать под кат.
Читать полностью »

Как организовать большое React-приложение и сделать его масштабируемым - 1

Одной из лучших особенностей React является то, что он не накладывает каких-либо ограничений на файловую структуру проекта. Поэтому на StackOverflow и аналогичных ресурсах так много вопросов о том, как структурировать React-приложения. Это очень спорная тема. Не существует единственного правильного пути. Предлагаем разобраться в этом вопросе с помощью статьи Джека Франклина, в которой он рассказывает о подходе к структурированию больших React-приложений. Здесь вы узнаете, какие решения можно принимать при создании React-приложений: о выборе инструментов, структурировании файлов и разбивки компонентов на более мелкие части.
Читать полностью »

Доклад состоялся 7 ноября 2016 года на конференции React Amsterdam. А начиная с марта, автор заметно активизировался. Примеры вдохновляют.

Перевод доклада про mobx-state-tree — всё лучшее из миров Redux и MobX - 1

Технология призвана облегчить жизнь react-разработчикам. Оно нам может заменить redux-saga по удобству тестирования, как я представляю. И там много чего ещё интересного. Но даже на английском практически нет публикаций. Предлагаю всем заинтересованным принять участие в переводе. Я намерен полноценно оформить статью со слайдами и опубликовать на Хабре. Читать полностью »

→ Перевод отсюда
→ Продолжение. Начало здесь

2. Извлечение данных из API

В этом разделе мы будем подключаться к API сайта Unsplash.it и запрашивать информацию о обоях. Но, прежде чем мы приступим к интересному, нам надо сделать кое-что.

Объявление классов в стиле ES2015

В файле index.ios.js вы видите существующий код. Он отвечает за вывод содержимого в эмулятор.

image

В файле index.ios.js мы видим строку var SplashWalls = React.createClass({ ... }). Мы будем менять ее. В этом руководстве мы будем использовать синтаксис ES2015 для объявления классов.
Мы, разработчики, любопытные. Вы, возможно, хотите спросить: «Зачем? Зачем использовать классы из ES2015?».
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js