• На что лучше перейти на Angular, React, Vue?

    splincodewd
    @splincodewd Автор вопроса
    В том и дело, что куски архитектуры я вроде как и более красиво смог переписать на ангуляре, где-то изрядно наговнокодил, проблемы есть даже с тем, что я использую не ng-cli, а использовал сборку на чистом webpack с кучей лоадеров для сборки под JIT и AOT, но проблема в том, что мои решения потом в некоторых серьезных моментах оказываются неподдерживаемыми, и мне тяжело писать дальше код. Я также в начале и поступил с ngComponentOutlet, сделал большой Map компонентов и большой бандл, но в силу того, что в итоге у вас на выходе только JIT, куча компонентов в памяти, да и загрузка куда хуже, чем хотелось бы, то тут уже просто решение бизнес-задачи не укладывается в требования бизнес-потребности. В том, что UI должен отрисовываться за 1 секунду в IE10 (в корпоративном секторе, как оказывается он царит), а когда фреймворк грузиться хрен знает сколько, еще и его компоненты, то блин, тут уже вопрос встает, а правильный ли путь я избрал.
  • На что лучше перейти на Angular, React, Vue?

    splincodewd
    @splincodewd Автор вопроса
    И все же хочется в Яндексе работать, вроде как и статус, и в резюме лучше смотрится, но амбиции это одно, а решить задачу для своего проекта это другое....
  • На что лучше перейти на Angular, React, Vue?

    splincodewd
    @splincodewd Автор вопроса
    И все же, зачем везде свой синтаксис, придет ли web наконец-то к нативным технологиям? в одном месте *ngIf, в другом месте вы v-if используете, и вот, потом как возьмут, напишут angular 2020 , или Vue 2020, код которых будет не переносим (как это было с angular 1.x to angular 2) и потом сиди переписывай или забрасывай проект.
  • На что лучше перейти на Angular, React, Vue?

    splincodewd
    @splincodewd Автор вопроса
    denismaster, Да, я скорее более примитивный вариант нарисовал с *ngFor, насчет отрисовки инпутов в полях, но общий смысл я уловил, я его в начале также реализовал, но смотрите:

    а) в модуле динамического создания компонентов DynamicFormModule они их заранее декларируют:

    DynamicFormComponent,
    FormButtonComponent,
    FormInputComponent,
    FormSelectComponent

    это означает, если у вас их 200, то вам приходится прописывать их все, и тогда у вас бандл увеличивается

    б) Далее они добавляются reference, чтобы можно было сразу получить компонент в Map
    components = {
    button: FormButtonComponent,
    input: FormInputComponent,
    select: FormSelectComponent
    };

    То есть это означает, если у вас их 200 компонентов, вам приходится в двух местах сразу что-то добавлять или удалять (да даже если и IDE как-то вам поможет рефакторить все это, все равно не удобно), то есть в одном месте декларируете компоненты, а в другом помещаете в Map снова теже компоненты, да еще и в entryComponents для модуля нужно указывать, получается 200 компонентов все равно как-то диковато.

    А что означает все делается ручками на сервере? Вы к тому, что лучше все же использовать серверный рендеринг + получать макет сразу на сервере?
  • На что лучше перейти на Angular, React, Vue?

    splincodewd
    @splincodewd Автор вопроса
    Ну команда в гневе, что я якобы выбрал не ту технологию, джависты пришли к нам в команду из Сбертеха (раньше они также писали и на angular 1.x), но про второй (четвертый) они не знают и поэтому считают angular испорченной технологией (ибо экосистема стала странной, всякие лоадеры, вебпаки, тайпскрипты). Помочь советами они не могут, что и как делать, поэтому пытался сам найти решение, да, у нас сейчас стоит продуктовая задача, сделать именно динамическую отрисовку компонентов исходя из того, что сейчас лежит в базе (то есть каждый раз пересобирать проект нельзя).

    Динамически генерировать формочки мне не надо, это делается легко с тем же *ngFor и привязкой модели

    Мне нужно генерировать разного рода компоненты:

    <ТУТ ДОЛЖЕН БЫТЬ КОМПОНЕНТ> ТУТ ДОЛЖЕН БЫТЬ КОМПОНЕНТ>

    И черт его знает, что это за компонент, может это dropdown-list, может step-list, может
    graphSVG компонент, потому как прилетает разметка, а судя по разметке нужно рендерить в тех метках где указан компонент, тупейший способ использовать ngComponentOutlet, но ему на вход нужен reference компонента, а это значит нужно все компоненты где-то хранить в Map и получать их по ссылке, а значит это тупой единый бандл с компонентами.
  • На что лучше перейти на Angular, React, Vue?

    splincodewd
    @splincodewd Автор вопроса
    denismaster, Динамически генерировать формочки мне не надо, это делается легко

    <div *ngFor="let field of entityFields">
    <input [ngModel]="field" />
    </div>

    Мне нужно генерировать разного рода компоненты:

    <ТУТ ДОЛЖЕН БЫТЬ КОМПОНЕНТ> ТУТ ДОЛЖЕН БЫТЬ КОМПОНЕНТ>

    И черт его знает, что это за компонент, может это <dropdown-list>, может <step-list>, может
    <graphSVG>, потому как прилетает разметка, а судя по разметке нужно рендерить в тех метках где указан компонент, тупейший способ использовать ngComponentOutlet, но ему на вход нужен reference компонента, а это значит нужно все компоненты где-то хранить в Map и получать их по ссылке, а значит это тупой единый бандл с компонентами.
  • На что лучше перейти на Angular, React, Vue?

    splincodewd
    @splincodewd Автор вопроса
    Ну вот я про серверный рендеринг вроде как писал, что можно попробовать его запустить, но увы их рабочий репозиторий Angular Universal с кучей багов и не у всех все работает, судя по issues tracker. Но раз вы пишите на Angular 1.5, значит вы не используете TypeScript и не знаете как устроена текущая архитектура Angular, может и знаете, но сейчас там все по другому и тут либо ты используешь рендеринг typescript to javascript, либо на сервере комплируешь, но опять же геморой какой-то.
  • На что лучше перейти на Angular, React, Vue?

    splincodewd
    @splincodewd Автор вопроса
    Ну вот как бы в самом ангуляре сделаны это одно, а вот самому реализовать подобное это другое, у меня так и не получилось вынести компоненты в отдельные бандлы и подгружать их и отрисовывать по требованию. И что значит стандартные решения из коробки, вы про ngComponentOutlet, я реализовывал это схему, главной особенностью является передача ссылки на компонент (класс компонента) в директиву ngComponentOutlet, а это значит, что вам придется все компоненты хранить в одном бандле и держать ссылки на эти компоненты в HashMap (ну или обычно объекте ключ => значение) ?

    Что насчет Stencil JS, не пробовал, но в репозитории на гитхабе у них IE11+, у нас же заказчики с IE10+.

    Можете описать механизм разработки ленивых компонентов https://debtstracker.io/ ? Я пытался использовать что-то от Ionic, но так и не получилось, постоянные ошибки и все падало.
  • На что лучше перейти на Angular, React, Vue?

    splincodewd
    @splincodewd Автор вопроса
    Я понимаю благими намерениями прямиком в ад можно попасть, но дело в том, что на ангуляре я пытался решить эту задачу 3 месяца, думаю время, которое мне было отведено уже на исходе, и либо надо что-то делать, либо проект уже зафакаплен и тогда пора уволняться (что будет означать, что я сдался). У реакта сейчас 74к звезд, у Vue было 80к звезд, сейчас 65к, это означает там была накрутка, их забанили кого-то из, в общем, я так понял React все же лучше, раз обществом лучше расценивается?
  • На что лучше перейти на Angular, React, Vue?

    splincodewd
    @splincodewd Автор вопроса
    Кстати, и почему Vue все же используется что-то подобное в шаблонах, как ангуляр? Это решение лучше и привычней? Я никогда не работал с jsx, но просто я пытаюсь представить, как бы я кучу html писал бы в js и мне не особо это нравилось бы
  • На что лучше перейти на Angular, React, Vue?

    splincodewd
    @splincodewd Автор вопроса
    Судите по тому, что на нём написан youtube теперь?
  • На что лучше перейти на Angular, React, Vue?

    splincodewd
    @splincodewd Автор вопроса
    Но будет ли перевес на сторону Vue в корпоративном секторе? Если в будущем хочется в Яндекс?
  • На что лучше перейти на Angular, React, Vue?

    splincodewd
    @splincodewd Автор вопроса
    А в двух словах, что за механизм Vuex или типа Redux применяется в этих фреймворках? Просто к сервисам привык, да и инжектить удобно. А что с написанием тестов, сложнее или проще, чем у ангуляра?
  • На что лучше перейти на Angular, React, Vue?

    splincodewd
    @splincodewd Автор вопроса
    Ну условно 1 модуль и 1 компонент весил у меня 4кб в минифицированной версии, но зависит от компонента (далее умножаем на N количество компонентов), но даже если они не много весят, для кого то, зачем грузить все каждый раз (ведь все это интерпретатор каждый раз прогоняет). Что вы подразумеваете под code splitting? В ангуляре можно разделить по бандлам только модули (но тогда что делать с общими компонентами, если они нужны в каждом бандле).

    Бюджет скорее на переработку не выделят, скорее своими усилиями по 15 часов в день и без выходных, если только на благо проекта (просто, если я не могу решить задачу, значит я завел всех в тупик в своей команде).
  • На что лучше перейти на Angular, React, Vue?

    splincodewd
    @splincodewd Автор вопроса
    Можно ли на VueJS использовать typescript, есть ли там аналог сервисов, input, output события как в angular, есть ли примеры с динамической загрузкой или отрисовкой компонентов по lazy load, поддержка модулей.

    И опять же, возьмут ли работать в Яндекс, если не используешь React?
  • Можно ли на ReactJS динамически загружать компоненты без знания о них при сборке самого приложения (как это реализовано в Angular 2+)?

    splincodewd
    @splincodewd Автор вопроса
    Но что делать, если название компонента даётся из базы в runtime, название роутера тоже и тд.

    У меня webpack 2.6.1, но почему то во время сборки typescript ругается на import()
  • Можно ли на ReactJS динамически загружать компоненты без знания о них при сборке самого приложения (как это реализовано в Angular 2+)?

    splincodewd
    @splincodewd Автор вопроса
    eval() cодержимого выполнял, но там не срабатывает DI и в целом, он не использует модуль, так как обычно webpack резолвит пути модулей и ставит в соответствие с именем модуля.
  • Можно ли на ReactJS динамически загружать компоненты без знания о них при сборке самого приложения (как это реализовано в Angular 2+)?

    splincodewd
    @splincodewd Автор вопроса
    но при сборке webpack import('./something'), нужно прописывать конкретный адрес файла на где лежит на диске, а вот мне приходить должны из базы путь до скомпилированного файла, и вот в коде у меня import(loadFileInDBfromFS);
  • Можно ли на ReactJS динамически загружать компоненты без знания о них при сборке самого приложения (как это реализовано в Angular 2+)?

    splincodewd
    @splincodewd Автор вопроса
    https://www.npmjs.com/package/react-async-componen...
    Так тут тоже во всех примерах, вы указываете компонент, который грузить, а уже webpack вам его будет компилировать при помощи Babel или еще чего.