Size: a a a

JavaScript.Ninja

2020 February 22

SC

Sergej Charskij in JavaScript.Ninja
Вы правы насчёт сервера. Данные будут инджектиться Express ом
источник

SC

Sergej Charskij in JavaScript.Ninja
Но проблема и возникает что window разбросан в реакт приложении во всевозможных местах
источник

SC

Sergej Charskij in JavaScript.Ninja
Я кое как заставил это дело работать просто перетащил предложение и в getInitialProps вставляю  в window данные
источник

SC

Sergej Charskij in JavaScript.Ninja
Результат на клиенте все продолжает работать теперь осталось придумать как это заставить на сервере
источник

MK

Maxim Kostenko in JavaScript.Ninja
В nuxt контекс доступен в сторе, что там в next я хз.
источник

MK

Maxim Kostenko in JavaScript.Ninja
Можно было бы сделать плагин который инжектит какой-нибудь $windowContext
источник

SC

Sergej Charskij in JavaScript.Ninja
Плагин во время сборки ?
источник

SC

Sergej Charskij in JavaScript.Ninja
Наверное какой то глобальный сервис будет наилучшим решением
источник

SC

Sergej Charskij in JavaScript.Ninja
Покрайней мере в плане имплементации самый дешёвый
источник

MK

Maxim Kostenko in JavaScript.Ninja
В nuxt глобальные сервисы плагинами обозвали зачем-то
источник

m^

mcombat ^-^ in JavaScript.Ninja
Sergej Charskij
Привет ребята. Может кто сталкивался с такой проблемой. Есть довольно большое react приложение в котором разные компоненты использует window  в который во время рендеринга сервер json с данными вставляет. Нужно как то это отрефакторить и убрать зависимость от глобальных переменных. У кого какие идее есть?
переменные с префиксом NEXT_STATIC доступны в рантайм
источник

SC

Sergej Charskij in JavaScript.Ninja
Правильно ли я понимаю что вы предлагаете скажем а _app.ja создать какую-то переменную и вставить данные из window а затем просто везде где раньше был window просто заменить  на NEXT_STATIC.foo = ..
источник

m^

mcombat ^-^ in JavaScript.Ninja
зачем вставлять данные из window?
источник

SC

Sergej Charskij in JavaScript.Ninja
Неправильно выразился то что раньше было в window
источник

SC

Sergej Charskij in JavaScript.Ninja
Теперь эти данные доступны в express
источник

m^

mcombat ^-^ in JavaScript.Ninja
допустим надо чтобы api_url было доступно и на сервере и на клиенте:  в .env  пишем
NEXT_STATIC_API=https://apihost
и гдето делаете модуль config.js где экспортируете
export const API = process.env.NEXT_STATIC_API
источник

m^

mcombat ^-^ in JavaScript.Ninja
и в компоненте у себя тогда import {API} from './config'  и поехали
источник

SC

Sergej Charskij in JavaScript.Ninja
Так эта часть понятна но не понимаю какую проблему это решает
источник

m^

mcombat ^-^ in JavaScript.Ninja
проблему что в браузере у вас нету доступа к process.env
источник

SC

Sergej Charskij in JavaScript.Ninja
Мы видимо о чем то разном говорим. Попробую еще раз объяснить
источник