bogdan_uman
@bogdan_uman
шлЫмазл неукЪ-поцЪ

Хранение глобальных переменных?

Здравствуйте. Подскажите пожалуйста как лучше всего хранить глобальные переменные:
1) window.baseUrl
2) в Vuex -> state -> baseUrl
3) Vue.prototype.$baseUrl= '...'

или есть другое решение? Спасибо.
  • Вопрос задан
  • 2200 просмотров
Решения вопроса 1
k12th
@k12th
console.log(`You're pulling my leg, right?`);
Хранить во vuex имеет смысл только если это значение меняется (исходя из названия, это вряд ли).

Vue.prototype.$baseUrl и window.baseUrl не самое изящное решение, потому что далеко не всем компонентам нужна эта константа.

Я бы создал какой-нибудь config.js и в нем
export const baseUrl = '...'
а там, где надо читать --
import {baseUrl} from './config.js';

По-моему, если не использовать какой-нибудь DI, это самое чистое решение.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
nikichv
@nikichv
Frontend dev. Current stack: Next.js/RTK/Saga
Если речь идет конкретно о хранении baseURL для обращения к API, то используйте переменные среды - это самый правильный вариант. Используя этот подход, вы легко сможете переопределять эту переменную при запуске проекта в разных окружениях (dev, production), не меняя сам код приложения.
Например, статья.
Проще говоря, в коде пишете что-то типа:
const baseURL = process.env.API_BASE_URL || https://defaultValue.com;

А запускаете сервер NodeJS следующей командой:
API_BASE_URL=http://example.com node index.js

P.S.
Самый распространненый пакет для работы с env пере...
NodeJS документация
Ответ написан
Комментировать
Прочитать можно в офф. доке, так же почитать про VUEX
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы