Если это просто добавление BASE_URL
, то этого можно добиться, объявив его внутри файла constants.js
и экспортировав его оттуда.Но тогда это заставляет нас делать BASE_URL + "something"
каждый раз, когда мы делаем сетевой запрос, который тоже не идеален.Также могут быть некоторые сценарии, в которых необходимо предоставить доступ к другой конфигурации, например, общий заголовок, который необходимо добавить ко всем запросам.
Для решения этой проблемы большинство библиотек запросов имеют встроенные решения.Если мы выберем axios в качестве наиболее популярного, мы можем создать экземпляр , например:
const instance = axios.create({
baseURL: 'https://some-domain.com/api/',
timeout: 1000,
headers: {'X-Custom-Header': 'foobar'}
});
export default instance;
и импортировать его везде, куда собирается axios
использовать как:
import axios from "./axios-instance";
при условии, что axios-instance.js
- это файл, в котором создается экземпляр.Теперь вы можете пропустить добавление BASE_URL
к каждому запросу, как это уже предусмотрено в экземпляре.