Здравствуйте, Lazytech, Вы писали:
L>Не знаю, возможно ли такое вообще. Пример можно?
Ну разумеется, полностью такое сделать невозможно: всегда можно руками установить какой-нибудь innerHTML, безо всяких фреймворков, со всеми вытекающими. Но вынесение всей разметки в отдельные шаблоны не на основном языке, очень даже работает, отучая рисовать ее по месту использования.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Здравствуйте, ути-пути, Вы писали:
УП>Ну разумеется, полностью такое сделать невозможно: всегда можно руками установить какой-нибудь innerHTML, безо всяких фреймворков, со всеми вытекающими. Но вынесение всей разметки в отдельные шаблоны не на основном языке, очень даже работает, отучая рисовать ее по месту использования.
Напомню, React — библиотека, разработчики которой особо не навязывают ее пользователям свое мнение (non-opinionated library). По идее, никто не мешает программисту, использующему React, стараться отделять JSX-разметку от логики. Сам обычно именно так поступаю. Да и вообще стараюсь не засорять JSX-код даже лишней разметкой.
Здравствуйте, Lazytech, Вы писали:
L>Напомню, React — библиотека, разработчики которой особо не навязывают ее пользователям свое мнение (non-opinionated library).
Вот и получается каша.
L>По идее, никто не мешает программисту, использующему React, стараться отделять JSX-разметку от логики. Сам обычно именно так поступаю. Да и вообще стараюсь не засорять JSX-код даже лишней разметкой.
Ты молодец. Но как это отменяет кучу говнокода, наложенную не такими молодцами? Расскажи как-нибудь, когда начнешь чужую кучу разгребать, как хорошо это "ненавязывание мнения".
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Здравствуйте, ути-пути, Вы писали:
УП>Ты молодец. Но как это отменяет кучу говнокода, наложенную не такими молодцами? Расскажи как-нибудь, когда начнешь чужую кучу разгребать, как хорошо это "ненавязывание мнения".
Наверное, можно использовать какой-нибудь opinionated framework.
Здравствуйте, Lazytech, Вы писали:
УП>>Ты молодец. Но как это отменяет кучу говнокода, наложенную не такими молодцами? Расскажи как-нибудь, когда начнешь чужую кучу разгребать, как хорошо это "ненавязывание мнения".
L>Наверное, можно использовать какой-нибудь opinionated framework.
Где использовать? Речь о поддержке существующего кода, когда он уже написан какими-то индусами на вполне конкретном фреймворке. Или ты предлагаешь полностью переписать их творчество?
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Здравствуйте, ути-пути, Вы писали:
УП>Где использовать? Речь о поддержке существующего кода, когда он уже написан какими-то индусами на вполне конкретном фреймворке. Или ты предлагаешь полностью переписать их творчество?
Кто виноват? Что делать?
К сожалению, у меня нет ответа на этот вопрос. Может, кто-нибудь ответит...
Здравствуйте, vsb, Вы писали:
vsb>Лично мне кажется, что у реакта самая грамотная архитектура из всех популярных фреймворков. Язык разметки, встроенный в JS, причём очень органично. Ничего лучше и желать нельзя.
При этом просто напросто реакт решает гораздо меньше вещей, чем тот же ангуляр. Поэтому то, что на проекте используется реакт — ещё мало о чём говорит.
Здравствуйте, vsb, Вы писали:
vsb>>>Я бы рассмотрел вариант использования ангуляра, если это такое прям кроваво-энтерпрайзное CRUD приложение с кучей таблиц, кучей форм с десятками полей и т.п. А для большинства проектов однозначно — React. Хотя бы потому, что он самый популярный с большим отрывом.
Тут уже поди можно и на микрофронтенды бить
В>>В реакте хуже со сложным гуём?
Тут уже больше наверное не сам реакт виноват, а внутреннее представление данных. Средствами реакта это пилить уже боль, так что лучше взять стейт менеджер какой-нибудь — mobx, redux или что-то ещё.
vsb>Когда я пытался делать — мне показалось это очень неудобным. Правда возможно проблема была больше в redux, я уже не помню.
Да, одно время на redux прям много приходилось писать. Но вот Redux Toolkit делает вещи очень простыми. Правда, я уже натыкался на пару ограничений — слайсы не завелись из-за циклической зависимости в какой-то момент, и потом ещё разок напоролся на какую-то похоже багу, но обошлось и пока всё нормально.
Здравствуйте, ути-пути, Вы писали:
УП>Это в идеальном мире так: программисты следуют хорошим практикам и делают все как надо. Но в реальности все куда печальнее, и инструмент не только не должен поощрять написание каши, но всячески такому препятствовать.
В мире JS настолько много всевозможных линтеров, я думаю за полдня можно написать проверку, которая запрещает в коде компонентов импортировать какие-то "не те" зависимости. Вообще удивлюсь, если этого ещё нет.
Большой плюс реакта — TSX. Пишешь UI, а тебе при этом доступна информация о типах моделей. Вот есть у тебя:
interface Loading {
type: 'loading';
}
interface Ready {
type: 'ready';
message: string;
}
type State = Loading | Ready;
В TSX пишешь:
if (state.type === 'ready') {
// фигак: конечно же у state есть 'message'
return (<p>{state.message}</p>);
} else {
// тут у state нету 'message'
...
}
...
В Angular этого нет. Если раньше хотя бы "на соплях" можно было написать "state.message" и надеяться на свою внимательность, в последних версиях поведение по умолчанию — ругаться на это. Прежде чем вот так вот обратиться к message, там надо ещё сделать какой-то финт с кастом к any. Это внутри шаблона, не в коде. Дрянь, короче. И позор как у них TypeScript с первого дня, а в итоге type safety никакого и нету.
Здравствуйте, ути-пути, Вы писали:
УП>Ты молодец. Но как это отменяет кучу говнокода, наложенную не такими молодцами? Расскажи как-нибудь, когда начнешь чужую кучу разгребать, как хорошо это "ненавязывание мнения".
Проблему кидания программиста на разгребание говна надо решать не технологиями, а поиском другой работы.
Здравствуйте, Ватакуси, Вы писали:
В>Почему вы предпочитаете одно другому? В>И почему реакт (как будто-бы) более популярен?
Говорят из-за мобилок.
А мне больше понравился https://ru.svelte.dev/
Но для фулстэк лучше блазор. или Fable Sutil.
Бэк и фронт в одного нужно писать на одном ЯП.
Если контора жирная то конечно по желанию начальства.
Здравствуйте, Lazytech, Вы писали:
L>Здравствуйте, vaa, Вы писали:
vaa>>А мне больше понравился https://ru.svelte.dev/
L>Экосистема уже развилась? А то пару лет назад была не очень...
не знаю. мне хватало базовой комплектации + vs code. графики рисует. вот тут вроде много всего https://sveltesociety.dev/
Здравствуйте, vaa, Вы писали:
vaa>не знаю. мне хватало базовой комплектации + vs code. графики рисует. вот тут вроде много всего https://sveltesociety.dev/
А я как-то нарвался на пару глючных сторонних библиотек. Этого мне хватило для того, чтобы понять, что React и Vue пока что лучше.