Anonymous
А вот ещё про вьютифай вопрос. Как дело обстоит с кастомизацией, если мне надо перебить стили? Вот есть их компонент, я хочу взять его за основу и доделать. Как это реализовывается?
Alexey
Конечно
а тебя не смущает, что асинкдата вызывается и на сервере и на клиенте и по сути одни и те же данные фетчатся дважды?
Anonymous
@AndreyKlimash все ясно, успехов
Yaroslav 🇺🇦
Она не может вызываться на клиенте. Она вызывается только в app for server через метод router.getMatchedComponents()
Alexey
в beforeMount
Андрей
@AndreyKlimash все ясно, успехов
все ему ясно блять. подсказать не варинат вообще? для тебя пустяк, а мне сейчас гору интернетов перелопатить надо, чтобы разобраться.
Yaroslav 🇺🇦
Правильно, но это не одновременно. Метод beforeMount работает только на клиенте, следовательно это сработает только при переходах уже на стороне клаиента. Сначала на сервере грузим то что нжно для рендеренга на сервере. А потом это изолированная от сервера аппка
Alexey
Правильно, но это не одновременно. Метод beforeMount работает только на клиенте, следовательно это сработает только при переходах уже на стороне клаиента. Сначала на сервере грузим то что нжно для рендеренга на сервере. А потом это изолированная от сервера аппка
хука beforeMount точно вызовется на клиенте в любом случае перед монтированием компонента же. То есть почему вдруг хуки жизненного цикла компонента роута не должны вызываться на клиенте при сср?
Alexey
ну и она по факту вызывается если дебажить
Yaroslav 🇺🇦
Ну и там вычисляем что уже было сматчено, потом что должно матчится
Yaroslav 🇺🇦
const matched = router.getMatchedComponents(to) const prevMatched = router.getMatchedComponents(from) // we only care about none-previously-rendered components, // so we compare them until the two matched lists differ let diffed = false const activated = matched.filter((c, i) => { return diffed || (diffed = (prevMatched[i] !== c)) }) if (!activated.length) { return next() }
Yaroslav 🇺🇦
И уже то что не сматчено подтягивается
Alexey
хм
Alexey
я использовал второй вариант
Alexey
Fetch data after the matched view is rendered
Yaroslav 🇺🇦
Единственное нужно проверить что бы когда заходит изначально отрендеренная страница to === from
Андрей
что не работает?
сервер отдает такой ответ. но если объект сериализировать, то все норм. буду признателен, если объясните почему так
Alexey
Единственное нужно проверить что бы когда заходит изначально отрендеренная страница to === from
хорошо, предположим. Но как тогда в модуль стора попадут данные?
Yaroslav 🇺🇦
Изначально?
Alexey
на клиенте
Alexey
Изначально?
ну то есть сам стор на клиенте вставляется в инстанс через replaceState а оно не заменяет стейт модулей, только глобальный
Yaroslav 🇺🇦
Оно и не должно заменять, оно дожно формировать можно сказать изначальный стейт относительно роута. И уже дальше анон будет переходить по приложению и подтягивать нужное, относительно того на какой урл он ходит
Stanislav
1.вообще, у тебя на скрине выше говорит, что сервер не нашел такой урл 2. Хрен его знает что там под this.$http
Андрей
непонятно почему не находит, когда я передаю объект а не url строку
Stanislav
this.$http это axios
если верить доке axios, то data это объкт
Stanislav
непонятно почему не находит, когда я передаю объект а не url строку
ну посмотри в девтулзах какой запрос уходит
Андрей
если верить доке axios, то data это объкт
вот поэтому я в замешательстве
Yaroslav 🇺🇦
У меня на сервере подтягивается состояние для модуля app, и формируется каталог в модуле catalog например, всё это приходит с сервера и формурует первое состояние вообще всей сторы
Stanislav
this.$http это axios
ты сам запихнул axios в прототип ? Или плагин какой
Stanislav
обертка vue-axios
А ты исходный код его смотрел?
Андрей
А ты исходный код его смотрел?
неа, думаешь проблема там?
Nikita
обертка vue-axios
почему бы не посмотреть доки к нему?
Alexey
Оно и не должно заменять, оно дожно формировать можно сказать изначальный стейт относительно роута. И уже дальше анон будет переходить по приложению и подтягивать нужное, относительно того на какой урл он ходит
но ведь это вызывает некоторую проблему, Данные фетчатся в стор, рендерится верстка. Данные из стора привязываются через computed в компонент. Все это на сервере. Рендерится верстика. Клиент ее получает. Но на клиенте то в сторе нет этих данных. Получается расхождение между реальным домом (который построен из верстки полученной с сервера) и виртуальным домом
Yaroslav 🇺🇦
Есть эти данные
Yaroslav 🇺🇦
Я понял
Alexey
откуда?
Stanislav
неа, думаешь проблема там?
А я знаю? Ты можешь 100% сказать, что твой плагин не изменяет формат объектов, которые передаются axios? Может в плагине нет поля data
Yaroslav 🇺🇦
покажи мне как ты рендериш строку
Yaroslav 🇺🇦
на сервере
Stanislav
неа, думаешь проблема там?
Нахрен он тебе вообще нужен? Возьми обычный axios
Stanislav
ща попробуем
Посмотри сначала че там на сервер уходит, какие запросы
Nikita
@AndreyKlimash https://medium.com/the-vue-point/retiring-vue-resource-871a82880af4
Nikita
последний абзац
Stanislav
последний абзац
https://www.youtube.com/watch?v=tSJD2X5YdZI
Alexey
покажи мне как ты рендериш строку
https://gist.github.com/anonymous/0762a55e3f230afdc2bb0c73f5f4204e
Nikita
https://www.youtube.com/watch?v=tSJD2X5YdZI
так я тебе ссылку на статью дал, наверно там нужно отвечать автору фреймворка?)
Nikita
ой все
Alexey
покажи мне как ты рендериш строку
ну и там еще в createBundleRenderer подключается HMR. Я брал с примера эвана и незначительно модернизировал под свои нужды, но вся логика идентичная
Alexey
при этом в верстке у меня стейт модулей есть
Alexey
в window.__INITIAL_STATE_ данные есть
Yaroslav 🇺🇦
ну и там еще в createBundleRenderer подключается HMR. Я брал с примера эвана и незначительно модернизировал под свои нужды, но вся логика идентичная
Я не использовал манифесты и createBundleRenderer я к сожалению не знаю как там передается изначальный стейт, вижу что контекст идет в формирование html строки
Yaroslav 🇺🇦
в window.__INITIAL_STATE_ данные есть
так почему тогда изначальный стейт не привязывается к сторе?
Yaroslav 🇺🇦
Ошибки сыпятся в консоли?
Alexey
Alexey
все как бы работает
Alexey
приложение все рабоатет
Alexey
просто дело в том что replaceState заменяет только глобальный стейт
Alexey
то есть глобальный стейт у меня фетчится на ура. А вот стейт модулей пуст
Yaroslav 🇺🇦
все как бы работает
Я праильно понимаю, что если Client Data Fetching убрать вообще, при первой загрузке страницы у тебя пустой стейт?
Alexey
у модулей
Alexey
глобальный норм
Yaroslav 🇺🇦
Давай смотреть что приходит у меня и у тебя в инитишиал стейт
Yaroslav 🇺🇦
я сейчас сделаю у себя для сравнения
Alexey
я сейчас сделаю у себя для сравнения
https://gist.github.com/anonymous/2e570f9524d996f3257134a13f128441
Alexey
Alexey
включая данные модулей стора
Alexey
registration, напрмиер, это данные модуля стора