Pull to refresh

Comments 23

Тоже столкнулся с такой проблемой. Мне особенно нравится в 16-й версии, что в качестве рендера можно вернуть массив. Но не тут-то было. Одна из часто используемых библиотек, а именно react-bootstrap, не работает (не работала; сейчас не знаю) с новой версией React'a (проблема всплывает при использовании модальных окон)… Поэтому приходится пока что сидеть на последней 15-й версии.

в новой версии исправили эту ошибку. сейчас все ок работает

Да, спасибо, уже переехали)

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

Все как раз-таки наоборот. Собственно смена движка рендера ничего не ломает. Но в новом релизе разработчики поменяли некоторые API методы, удалили те, что были явно задепрекейчены полгода назад. Для мажорного релиза это нормально.

У вас взаимоисключающие параграфы. Невозможность частичного перевода проекта на новую версию библиотеки — типичная детская болезнь.

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


Всё это было известно с релиза v15, который состоялся в апреле 2016, а сейчас конец 2017.

Ещё раз: проблема не в отсутствии обратной совместимости, что нормально для мажорной версии (16 раз за 4 года уже ломали апи или просто так счётчик накручивали?). Проблема в невозможности постепенного переезда. "Не правильные" и "недокументированные" методы использовались ведь не просто так, а решали конкретные задачи, которые без них, "правильными" и "документированными" методами было не решить. Те же "порталы", например.


Ну а аргумент "мы вам пол года кидали варнинги — почему вы до сих пор не обновили код сторонних библиотек?!?" — вообще мимо кассы.

WAT? Похоже вы даже не в курсе о принципах версионирования реакта, ну да ладно. Во-первых, 16 реакт полностью совместим с 15, скорей всего и ниже, если вы правильно работали со state, не использовали приватных методов или недокументированных функций. Всё что описано в статье можно было не делать, а просто зашимить, вот и весь перезд, тут же человек наконец-то решил привести кодовую базу в порядок. Во-вторых 16 реакт это не просто новый рендер, это абсолютно новый реакт, но как я уже написал, совместимый с предыдущими версиями.


"Не правильные" и "недокументированные" методы использовались ведь не просто так, а решали конкретные задачи, которые без них, "правильными" и "документированными" методами было не решить.

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


Наверно вы опять сейчас напишете, что вот «у меня в $mol такой проблемы нет»… конечно нет, его же никто не использует, да и версионирования нет.


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

16 реакт полностью совместим с 15

Некоторые (в том числе "документированные") апи выпилили, некоторые даже шимов никаких не имеют (что-то там про профайлинг) — это называется "полностью совместим" в современном мире?


те же порталы легко реализовывались через простенький HOC.

Приведите код.


«у меня в $mol такой проблемы нет»… конечно нет, его же никто не использует, да и версионирования нет.

Всё проще — мы не ломаем апи. Хочешь сломать апи — пили новую либу, а не прикидывайся той же самой. Это позволяет иметь в проекте одновременно несколько версий одного модуля и постепенно переползать с одной на другую.


16 реакт это отличный пример, как полностью переписать огроменную либу

А preact — отличный пример, как переписать огроменную любу в миниатюрную либу. Как мне плавно мигрировать проект с React на Preact или наоборот?

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

Особенно классно тем, кто только начал изучать react по русскоязычным мануалам. Например, здесь и здесь createClass приводится как один из основных способов создания элемента. А ты такой скачиваешь последний react, а он тебе а вот нифига.
Я лично после такого решил vue.js изучать.
Здесь вы смешиваете проблемы библиотеки и русскоязычного сообщества. Здесь вина не react, а быстротечности веб-технологий. То же самое будет и с vue. А может быть и есть уже сейчас.
Когда недавно пытался гуглить что-то по jquery, даже на английском языке, находились ответы, где советовали использовать $('.class').bind(), хотя казалось бы, 2017 на дворе.
У нас в магазинах до сих пор лежат бумажные книжки, где описывается как сделать border-radius с помощью версткой таблицами и гифками =)
Дело не в сообществе. Дело в том, что для довольно таки свежей версии мануала уже неактуальна версия реакта. В серьёзных фреймворках функционал сначала помечают как Deprecated, всячески сигнализируют об этом в процессе работы приложения, и только потом уже выпиливают через N релизов.
А вот если открыть новость к релизу react 15 и вдучиво почитать, но мы не увидим ничего про deprecated createClass.

А если открыть новость к релизу 15.5, то там об этом написано.


Также начиная с 15.5 появились и ворнинги при обращении к React.createClass. Как этого можно было их не заметить — я не понимаю. Разве что если сидеть на версии 15.0, а потом внезапно перепрыгнуть на 16, пропустив все предыдущие.

Т.е. подождите, они выпустили 7 апреля 2017 версию 15.5, в которой пометили одну из основых функциональностей как deprecated. Потом выходит ещё одна минорная версия, потом, 26 сентября 2017 выходит мажорная версия, в которой этот функционал просто выпилили? Это вообще как?
Повторюсь, для мелких проектов, которые используют полтора инвалида, это может быть нормально. Но для таких крупных, как React это недопустимое(imho) поведение. Использование больших фреймворков в проектах отличается сильной интертностью. Полгода — это вообще не срок для deprecated функциональности.

Ну заведите им об этом issue или дайте знать по каким-нибудь другим каналам связи, что вам такая политика релизов и депрекейтов не подходит.


Большую часть коммьюнити, статус-кво вполне устраивает. Если у вас есть свой взгляд на этот вопрос, поделитесь им с разработчиками React.

А здесь — createClass нe приводится. То, что вам не повезло нагуглить актуальный перевод, ничего не говорит о качестве фреймворка как такового.

Вопрос не совсем по теме.
Новый проект начал на create-react-app 16. Настроил proxy, как в было 15 — не работает.
Погуглил и с особым цинизмом прописал в \node_modules\webpack-dev-server\lib>Server.js
прямо в коде:
options.proxy = {
"/upload": { target: «127.0.0.1:8081», secure: false },
"/download/": { target: «127.0.0.1:8081», secure: false},
}
Заработало, но осадочек остался.
Просветите, плиз, в каком конфиге это задается.
В webpack.config.js

devServer: {
    proxy:{...}
}
В этом ишье объясняется много и хорошо (как раз про react-app-rewired можете узнать, пригодится). Вообще обычно достаточно в package.json прописать:
"http://localhost:4000",
Детский сад это библиотеки которые мешают апгрейду, например react-datepicker все никак не смержит PR для поддержки React 16. Хотя их за месяцы до релиза просили это сделать.

Хотел насладиться Fiber-ом. Накатил, ужаснулся количеству ошибок в зависимостях. Откатился взад. Рано!

Sign up to leave a comment.

Articles