Как сохранить центральный/глобальный объект для некоторых данных с помощью ретранслятора?Глобальные данные с реактивным маршрутизатором
Предположим, у моего сайта React имеется 20 различных маршрутов. 15 из этих 20 маршрутов нуждаются в одном файле JSON с сервера, который почти никогда не изменяется. Мне не терпится получить ПО/api/mydata для каждого нового URL/маршрута.
Я думаю, что могу сохранить данные в React's context, но это кажется взломанным и может даже не работать. Существует ли более элегантное решение для обмена данными между компонентами реагирующего маршрутизатора?
Edit: я частично решена путем создания Data.js файла:
export var myData = function(cb) {
ajax('GET', '/api/mydata', resp => {
myData = function() {
return cb(resp);
};
cb(resp);
});
};
и использовать его как это:
myData(data => data.map(/* ...use the data */));
Таким образом, данные гарантированно только неправдоподобным один раз в жизненный цикл.
Вы можете просто сохранить эти данные в качестве реквизита в корневом компоненте и передать его дочернему компоненту. Маршрутизация в реакторе не будет сбрасывать реквизиты. Я предлагаю вам изучить реакцию-редукцию или поток, они решили вашу проблему. –
Я столкнулся с редукцией и флюсом и смутно понял, что это проблема, которую они решают, но я был слишком обеспокоен добавлением _more_ KB к моей программе. – zelcon5
Redux is ~ 2kb. Я не думаю, что вы должны беспокоиться об этом. – charlespwd