Форум программистов, компьютерный форум, киберфорум
React/ReactJS
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/40: Рейтинг темы: голосов - 40, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 14.07.2018
Сообщений: 10

Недостатки React

15.07.2018, 20:49. Показов 7464. Ответов 10

Студворк — интернет-сервис помощи студентам
Здравствуйте. Расскажите пожалуйста о недостатках, архитектурный просчетах, неудобствах и т.д. с которыми вы сталкивались при написании приложений с использованием React.

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

В общем небольшая пятиминутка ненависти

Добавлено через 20 часов 37 минут
Что-то совсем тихо. Придется начинать самому.

Компонентный поход - позволяет повторно использовать уже написанный код.

Фигушки! В большинстве случаев повторное использование это не использование кода как есть, а использование уже имеющегося кода (читай компонента) с небольшими изменениями/дополнениями. А вот с этим у реакта всё очень и очень печально. Например:

Нам нужен DatePicker. Берем готовый или старательно пишем свою реализацию. Предположим, что он нас полностью устраивает и мы стали использовать его во всех проектах как вдруг появляется заказчик который заявляет: "Ваш DatePicker - унылое Г ибо в нем отсутствует кнопка "вперед на неделю"".

И всё. Приплыли. React не позволяет нам, оставив изначальную реализацию не тронутой, написать отдельную расширенную версию с хотелкой заказчика, максимально используя уже написанное. Так?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.07.2018, 20:49
Ответы с готовыми решениями:

События в react js
Вот мне немного неясен момент с this._inputElement.value. В рендере оно заменится на event.target.value? Если да, то почему бы не написать...

React и clearInterval
Добрый день! <div onClick={this.start.bind(this)}>старт</div> <div onClick={this.stop.bind(this)}>стоп</div> ...

React native
Всем ку , есть проблемка уже час сижу не могу понять в чем проблема . Вообщем нужно установить react native cli на мак , все скачал , node...

10
707 / 309 / 191
Регистрация: 05.03.2015
Сообщений: 822
16.07.2018, 02:33
Цитата Сообщение от mytbin Посмотреть сообщение
React не позволяет нам, оставив изначальную реализацию не тронутой, написать отдельную расширенную версию с хотелкой заказчика, максимально используя уже написанное. Так?
Не так. Что вам мешает сделать форк чужого датапикера и допилить нужные хотелки? Очевидно что это повлечет проблемы с обновление в будущем, но это далеко не всегда большая беда
0
0 / 0 / 0
Регистрация: 14.07.2018
Сообщений: 10
16.07.2018, 11:17  [ТС]
Что вам мешает сделать форк чужого датапикера
Попытка сразу писать код, котрый не вызовет проблем в последствии, единая кодовая база и т.д. и т.п.
Понятно что можно форкнуть, но теперь у нас стало уже два DatePiker-а (оригинальные по прежнему используются). При этом 99% кода в них будут абсолютно одинаковыми (копипаста).

- Завтра еще 8 заказчиков захотят внести небольшие изменения и DatePicker-ов станет уже 10.
- А потом оказывается, что в оригинальной версии изначально присутствовал баг (сами понимаете, что исправлять одну ошибку в 10 различных местах то еще удовольствие).

- А послезавтра (это не очень правдоподобно, но все таки) появляется еще один заказчик и заявляет: "Хорошие DatePicker-ы. Дайте все." И вот, специально для него, мы пишем приложение, состоящее на 90% из копипасты.

В общем уже один это косяк как бы намекает что React пригоден только для приложений не сложнее Hello World-a, либо для приложений без последующей поддержки (сляпал на коленке и забыл навсегда), а если попытаться написать на нем что-то большее (CRM-ку какую-нибудь) то постоянно будет так:

Да?
0
249 / 162 / 68
Регистрация: 10.12.2017
Сообщений: 558
16.07.2018, 16:40
Цитата Сообщение от mytbin Посмотреть сообщение
Да?
Нет

Цитата Сообщение от mytbin Посмотреть сообщение
Компонентный поход - позволяет повторно использовать уже написанный код.
Да

я вот вчера программировал и забыл включить монитор, а так все работает )

) попробуйте по старинке, document.getElementById.value = xxx
точно не придется делать 10 дэйтпикеров )
0
0 / 0 / 0
Регистрация: 14.07.2018
Сообщений: 10
16.07.2018, 17:41  [ТС]
Еще раз перечитайте сообщения и придумайте более аргументированный ответ )

С повторным использование кода без дополнений/изменений проблем никаких нет (их и до реакта не было никогда). Но стоит только этим изменениям появится, как нас ждет беда-печаль.

Пример с DatePicker-ом приведен не случайно ибо это не самая простая штука и в нормальной реализации свойств (а следовательно и уже написанного кода) у него вагон и маленькая телега.

Странная хотелка в виде кнопки "вперед на неделю" тоже не случайна ибо она не является функционалом который стоит включять в основную реализацию.

Ну и раз вы используете так много смайлов (очевидно в насмешку) решите эту задачу без копипасты.
0
249 / 162 / 68
Регистрация: 10.12.2017
Сообщений: 558
16.07.2018, 18:15
все универсальное сделать нельзя

Цитата Сообщение от mytbin Посмотреть сообщение
Странная хотелка в виде кнопки "вперед на неделю" тоже не случайна ибо она не является функционалом который стоит включять в основную реализацию.
в чем дело? то что вы запили дэйтпикер, а заказчик сказал не то?)))
значит надо с заказчиком согласовать ТЗ, где он точно опишет что он хочет.

короче, я с вами не согласен, возьмите для пример ExtJS и там измените дейтпикер ), да хотя бы css перерисуйте, не говоря что-то там с логикой сделать...
0
0 / 0 / 0
Регистрация: 14.07.2018
Сообщений: 10
16.07.2018, 20:12  [ТС]
Цитата Сообщение от Evgen1337 Посмотреть сообщение
возьмите для пример ExtJS
Взял:
Кликните здесь для просмотра всего текста
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Ext.define('SuperDatePicker', {
    
    extend: 'Ext.picker.Date',
    alias: 'widget.superdatepicker',
    
    listeners: {
        render: function(cmp) {
            let newBtn = new Ext.button.Button({
                text: 'newBtn'
            })
            newBtn.render(cmp.footerEl, 0);
        }
    }
    
});

И всё. Оригинальный DatePicker остался не тронутым. Заказчик получил что хотел. Все счастливы.
Попробуйте сделать тоже самое в React?

Ладно я здесь не спора ради, а сбора информации для. У кого есть претензии к react пишите. Кто готов оспорить вышесказанное тоже.
0
249 / 162 / 68
Регистрация: 10.12.2017
Сообщений: 558
17.07.2018, 11:48
mytbin, Ок, ExtJS был для примера, и этому сниппету расширяющему DatePicker вы забыли приложить еще два экрана, кода конфигурации самого DatePicker )...

Надо понимать, что реакт это библиотека (рендерер), а ExtJS, Angular - это фреймворки с кучей RichUI элементов. И если вы взяли чей-то DatePicker, то он к реакту относится постольку-поскольку. Реакт позволяет сделать RichUI малыми усилиями собственными руками.

Я провел достаточное время на ExtJS, залепил около 20 форм, которые где-то в продакшене юзаются ), после этого попался реакт, и хочу сказать, что для меня реакт лучше, это именно то, что нужно для создания UI интерфейсов )

Спорить не буду, я все сказал )
0
0 / 0 / 0
Регистрация: 14.07.2018
Сообщений: 10
18.07.2018, 16:19  [ТС]
Цитата Сообщение от Evgen1337 Посмотреть сообщение
еще два экрана, кода конфигурации самого DatePicker
Ну не знаю где вы нашли 2 экрана конфигураций. Там только локализация, первый день недели, формат даты и еще пару параметров (как и в остальных DatePicker-ах).

Цитата Сообщение от Evgen1337 Посмотреть сообщение
реакт это библиотека (рендерер), а ExtJS, Angular - это фреймворки
Дык речь не про отсутствие/наличие элементов управления, а про архитектуру (буква O из SOLID, DRY и т.д.). В примере c ExtJS оно есть, а в реакте ими даже не пахнет.

В общем закончили с обсуждением компонентного подхода. Переходим к обсуждению других косяков. Надеюсь о них кто-нибудь напишет.
0
249 / 162 / 68
Регистрация: 10.12.2017
Сообщений: 558
18.07.2018, 16:58
Цитата Сообщение от mytbin Посмотреть сообщение
Ну не знаю где вы нашли 2 экрана конфигураций. Там только локализация, первый день недели, формат даты и еще пару параметров (как и в остальных DatePicker-ах).
и делать он ничего не будет, да, правильно

я тебе про Фому, ты мне про Ерёму
все, вижу твое имя, и больше с тобой не общаюсь
0
0 / 0 / 0
Регистрация: 14.07.2018
Сообщений: 10
18.07.2018, 18:12  [ТС]
Цитата Сообщение от Evgen1337 Посмотреть сообщение
я тебе про Фому, ты мне про Ерёму
Я тебе про архитектуру, ты мне стандартные мантры реактофилов.

PS. Я сам использую реакт, но понимаю, что у него есть недостатки.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.07.2018, 18:12
Помогаю со студенческими работами здесь

React на хостинге
Пытаюсь установить react на хостинг beget, как тест и получаю, ошибку с import, webpack и babel установлены, настройки по node на beget...

React и не только
Добрый вечер, представьте, есть человек, который делал лендинги и работал с html/css немного js/jquery, php только для многостраничников и...

React.js с Material-ui
Привет ребята! Возник вопрос и проблема с React.js. Я написал код который должен вывести мне кнопки в стиле Material-ui, однако браузер...

Посоветуйте курсы по React JS
Народ, всем привет. Вот недавно начал изучать React JS вот по этим видео:...

Не работает scss в react-е
Здравствуйте. Не распознается синтаксис scss у меня в react проекте. Установил его, yarn перезапустил, прописал в webpack.config.js ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru