Позволю не согласиться с вами насчёт динамического импорта компонентов. Абсолютно точно не следует его использовать для всех компонентов. Эта штука нужна и полезна в тех случаях, когда часть приложения не всегда используется. Например, пользователь открыл сайт, но компонент с корзиной, скажем, можно загружать динамически, так как пользователю он сразу не нужен. Но если все компоненты грузить динамически, то мы только заставим браузер загружать несколько отдельных более мелких чанков с кодом, что совсем даже не ускорит загрузку, а ровно наоборот.
Что касается типизации — то Vue 3, вообще-то, уже зарелизился ещё осенью, хотя переходить на него рановато, однако использовать плагин @vue/composition-api с vue2 + ts никто не мешает уже сейчас.
Вопросом типизации и управления более-менее большими проектами пришлось недавно озадачиться, в результате родилась пока ещё довольно сырая поделка под названием VueenT, которую можно найти на github. С документацией пока все плохо, но есть исходники и тесты. @vueent/mix-models используем вместо Vuex, но там парадигма другая.
Эта утилита — воплощение windows-подхода, прямо противоречащего идеям unix о том, что каждая утилита должна выполнять ровно одну функцию, но делать это хорошо, а задача оболочки обеспечить пользователя удобными способами их (утилит) комбинирования. В теории, можно знать несколько утилит и на их основе решать массу задач, чем изучать каждое изолированное приложение отдельно. На практике, к сожалению, нынче слишком много всяких утилит с разношестными интерфейсами стало, так что ни один подход явно не лучше другого.
Всё-таки, применение reduce во многих случаях спорно, особенно, в качестве замены map-filter. Если хотим производительности, то for уделяет их всех на две головы, если хотим наглядности — map-filter нагляднее.
Позволю не согласиться с вами насчёт динамического импорта компонентов. Абсолютно точно не следует его использовать для всех компонентов. Эта штука нужна и полезна в тех случаях, когда часть приложения не всегда используется. Например, пользователь открыл сайт, но компонент с корзиной, скажем, можно загружать динамически, так как пользователю он сразу не нужен. Но если все компоненты грузить динамически, то мы только заставим браузер загружать несколько отдельных более мелких чанков с кодом, что совсем даже не ускорит загрузку, а ровно наоборот.
Что касается типизации — то Vue 3, вообще-то, уже зарелизился ещё осенью, хотя переходить на него рановато, однако использовать плагин @vue/composition-api с vue2 + ts никто не мешает уже сейчас.
Вопросом типизации и управления более-менее большими проектами пришлось недавно озадачиться, в результате родилась пока ещё довольно сырая поделка под названием VueenT, которую можно найти на github. С документацией пока все плохо, но есть исходники и тесты. @vueent/mix-models используем вместо Vuex, но там парадигма другая.
Всё-таки, применение reduce во многих случаях спорно, особенно, в качестве замены map-filter. Если хотим производительности, то for уделяет их всех на две головы, если хотим наглядности — map-filter нагляднее.