S
после отправки запроса я хочу обновить свой список, вызвать функцию с фетчем или сменить key компонента, что лучше ?
Daniil
Не ну тогда на поиск вообще забить можно, но я про массовое веб приложение
Говорят гугл умеет уже и без страшных слов сср, но жизненных опытов на этом не видел
artalar
Ну вот они используют SSR, сильно ли это помогает продвинуться в поиске?
Все от бизнеса зависит, вам ответ ни холоднее не горячее сделать не должен
Максим
Небольшой вброс для холивара) Кто-нибудь может поделиться интересными статьями на тему ts vs flow в контексте реакта и крупных (скажем, больше 500 компонентов) проектов?
artalar
Ну вот они используют SSR, сильно ли это помогает продвинуться в поиске?
Нужно самому садиться и мерить. Или искать в точности такой же бизнес и смотреть че да как у них получается - но это не надежно. Возьмите puppetier (он может что угодно засерверсайдрендерить) и редиректите на него 10% первичных запросов, собирайте с этого статистику
rovnyart
ребят, я знаю, что тут все любят редаксы и прочие эффекторы, но подскажите плз, если кто сталкивался, как без стейт-манагеров лучше организовать действия с апи в плане post, put и delete-запросов, так чтобы это было более менее по солиду? мб кто ткнет носом в статейку? для фетчинга данных сейчас используем dal-слой с хуком useData, который принимает некие опции и возвращает данные, флаги loading/loaded, саму функцию для рефетчинга и ошибку, а есть какое-нибудь такое же, только для put/post/delete? как ваще это делается по-умному? просто у нас сейчас это реально просто вызов axios.delete прям чуть ли не в компоненте по сабмиту формы реализовано
artalar
Небольшой вброс для холивара) Кто-нибудь может поделиться интересными статьями на тему ts vs flow в контексте реакта и крупных (скажем, больше 500 компонентов) проектов?
Глубоко извиняюсь перед фанатами флоу, но у него все очень плохо по сравнению с ТС, особенно после объявления номинальной типизации последним
Максим
Номинативной может?
S
Сложно ответить, нужен пример или более детальнее описать задачу
Есть datatable я отправляю запрос чтобы добавить данные туда, чтобы они отобразились лучше опять фетч вызвать или key компонента сменить?
S
Я во vue key менял, но в реакте хз
artalar
“номинальная типизация в ТС” 😅😅
Artem
Есть datatable я отправляю запрос чтобы добавить данные туда, чтобы они отобразились лучше опять фетч вызвать или key компонента сменить?
А данные откуда, если не с фетч запроса? Если можно обойтись без запроса, то конечно лучше без него, будет быстрее всё
Максим
Глубоко извиняюсь перед фанатами флоу, но у него все очень плохо по сравнению с ТС, особенно после объявления номинальной типизации последним
Я сам с flow не работал, только ts. Но часто вижу в чатиках какашки в сторону ts от пользователей flowи вот стало интересно. Поискал по сабжу, не нашел нормальных статей больше 5 абзацев. Можно конечно изучить и сравнить вживую, но время...
artalar
Я сам с flow не работал, только ts. Но часто вижу в чатиках какашки в сторону ts от пользователей flowи вот стало интересно. Поискал по сабжу, не нашел нормальных статей больше 5 абзацев. Можно конечно изучить и сравнить вживую, но время...
Зайдите в чат флоу и почитайте его, там: баги, баги, баги… Чат ТС: тупые вопросы и куча рассуждений о том как написать и интегрировать крутые инструменты на / для ТС
artalar
Год перед этим сидел на флоу, есть с чем сравнить
Александр
Год перед этим сидел на флоу, есть с чем сравнить
Аналогично около года на flow было, потом таки устаканилось все на TS, все довольны
h1
я задавал уже вопрос но повторю, а насколько часто в продакшен проектах на реакте используют TC? и что делать с Фулстек проектами?
h1
а с теми либами для кот. нету дефинишенов ТС?
artalar
я задавал уже вопрос но повторю, а насколько часто в продакшен проектах на реакте используют TC? и что делать с Фулстек проектами?
Вряд ли тут кто-то ведет статистику, а даже если ведет, вряд ли она релевантная 🙂 Ну ТС точно продакшен реди. И да, на фулстеке с ним прям хорошо (сам не пробовал)
rovnyart
я задавал уже вопрос но повторю, а насколько часто в продакшен проектах на реакте используют TC? и что делать с Фулстек проектами?
мне кажется сейчас уже пугающе часто( я вот ни бум бум в тс, потому что мой ментор его ненавидит, но сейчас реально понимаю, что новую работу без знаний тс уже ОЧЕНЬ тяжело найти нормальную, поэтому строю по ночам козни как бы инициировать перевод нашего (фулстек) проекта на тс
h1
и извиняюсь может за глупый вопрос, но последний ТС поддерживает хуки?
Александр
а с теми либами для кот. нету дефинишенов ТС?
А таких много? Для почти всех широкоиспллзуемых есть тайпинги, в крайнем случае свои прикрутить, ну или оставить как есть
Александр
и извиняюсь может за глупый вопрос, но последний ТС поддерживает хуки?
Нет не поддерживает , хуки это не языковая фитча.
Александр
wat? А разница?
Ну вопрос не имеет смысла, это как спросить а поддерживает ли TS moment.js или jquery
Sergey
и извиняюсь может за глупый вопрос, но последний ТС поддерживает хуки?
Языку все равно. Это реакт представляет. Так что обновляй реакт и пиши спокойно на тс
Александр
Бред пишешь
Ой да ну? Прямо поддержка хуков есть в TS?
artalar
Ну вопрос не имеет смысла, это как спросить а поддерживает ли TS moment.js или jquery
Ну человек, видимо, не очень шарит.. Понятно что вопрос про тайпинги, вывод типов
Александр
Языку все равно. Это реакт представляет. Так что обновляй реакт и пиши спокойно на тс
Так я о том же самом, тайпскрипт то тут при чем P.S опасно становится мысли излагать
Sergey
Я сам с flow не работал, только ts. Но часто вижу в чатиках какашки в сторону ts от пользователей flowи вот стало интересно. Поискал по сабжу, не нашел нормальных статей больше 5 абзацев. Можно конечно изучить и сравнить вживую, но время...
Тс иногда обманывает в типах, иногда плохо их выводит. Флоу в плане глубокого вывода типов сильно лучше. И не имеет проблем со структурными типами классов, потому что они во флоу номинальные как в больших языках. Но сейчас флоу скатывается, а тс имеет лучшую инфраструктуру
h1
спаисбо!
MVD
Почему, если я бросаю свою ошибку throw new MyError(), а потом проверяю err instanceof MyError то он возвращает false?
Dmitry
Как сейчас делают иконки? Грубоговря из спрайта png к примеру
Александр
Почему, если я бросаю свою ошибку throw new MyError(), а потом проверяю err instanceof MyError то он возвращает false?
А MyError наследуется от Error? Если используется бабель то там помнится была проблема с наследованием от встроенных типов... давно бабел не юзал, но мб оно самое
MVD
Без кода гадать такое себе
function test() { throw new RequiredFileError(); } useEffect(() => { try { test(); } catch (e) { console.log(e instanceof RequiredFileError); // false } }, []);
Sergey
ts
О кек. Посмотри во что он превращает код
Sergey
От таргета ещё сильно зависит
Александр
MVD
О кек. Посмотри во что он превращает код
function test() { throw new _errors__WEBPACK_IMPORTED_MODULE_12__["RequiredFileError"](); } Object(react__WEBPACK_IMPORTED_MODULE_0__["useEffect"])(function () { try { test(); } catch (e) { console.log(e instanceof _errors__WEBPACK_IMPORTED_MODULE_12__["RequiredFileError"]); // false } }, []);
Daniil
Здрасте. Вопрос по ts&react. сделал mapDispatchToProps, прикрутил интерфейс к компоненту, для dispatch поставил тип any, пытаюсь вызвать действие (onInitForm), а дает ошибку: Cannot invoke an expression whose type lacks a call signature. Type 'FormsActionTypes' has no compatible call signatures https://gist.github.com/daniilgri/74c447b590a9b422d941348a0a8fe3cf
Daniil
Daniil
Что это может быть?
Cenator 🐈
() => dispatch(initForm())
Cenator 🐈
Вообще пора уже хуки юзать
Daniil
() => dispatch(initForm())
Возможно после этого начну) Но ошибка всё равно
Cenator 🐈
В браузере
Daniil
В браузере
Не, ваще не робить This expression is not callable. No constituent of type 'FormsActionTypes' is callable на onInitForm() вызов в useEffect
Андрей
Не используй connect. Используй хуки.
Daniil
👌хорошее решение
MVD
Код класса ошибки
var RequiredFileError = /** @class */ (function (_super) { Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(RequiredFileError, _super); function RequiredFileError() { var _this = _super.call(this, 'File is required') || this; _this.name = 'RequiredFileError'; return _this; } return RequiredFileError; }(Error));
Sergey
Короче компилируй тс бабелем