Особенности реактивности Vue.js в бэкэнд-приложении?

Мне интересно, есть ли кто-нибудь, кто разбирается в реактивности Vue (2 или 3), который мог бы ответить на этот вопрос и объяснить причины.

Это касается таких функций, как реактивность data() (геттеры и сеттеры), вычисляемые свойства, глобальный экземпляр Vue и даже хранилище Vuex.

Есть ли способ, которым я мог бы использовать только эти небраузерные функции javascript для использования в приложении Node.js, предназначенном только для серверной части?

Мне нужен способ иметь глобальное хранилище, содержащее временные данные, которые могут обновлять компоненты в других файлах через mapState/mapGetters.

В настоящее время я использую для этого lowdb, потому что он соответствует моим потребностям с точки зрения формируемых объектов JSON, где что-то вроде redis является ключом: только значение. (Не хочу вдаваться в более сложную настройку redis/rejson.)

По сути, мне нужна глобально доступная относительно полнофункциональная система реактивности на бэкэнде, без глобальных переменных или необходимости настраивать пользовательскую систему Rxjs, которая немного выше моей головы и отнимет слишком много импульса от моих целей, время- мудрый.

Буду признателен за любой вклад. Спасибо ????


person Brendan    schedule 14.03.2021    source источник


Ответы (1)


Vue предназначен для работы внутри Node для поддержки SSR (рендеринга на стороне сервера). Здесь уже есть хороший пост на SO с простым примером для Vue 2 (с использованием Vue + Vuex)

Но мне кажется это перебор. Если вам нужно что-то более простое и легкое, вы можете использовать пакет @vue/reactivity. который обычно является частью Vue 3, но может использоваться полностью автономно. По сути, это система реактивности Vue 3, основанная на JS-прокси< /а>

Почему я выбираю этот подход:

  1. Нет Vue 2 Предупреждения об обнаружении изменений
  2. Более функциональный API (разработанный для их нового Composition API) с гораздо лучшей поддержкой TypeScript и выводом типов (даже без TS).
  3. Я думаю, что Vuex API очень плохой (использование строковых констант для отображения данных, особенно с модулями. Это боль...)

Поскольку это часть Vue 3, вы можете использовать его документацию:

  1. Основные API реактивности
  2. Ссылки
person Michal Levý    schedule 14.03.2021