@vuejs_ru

Страница 1231 из 3900
Yaroslav
28.08.2017
10:08:54
Да ssr, там правда два модуля глобальный для app, и конкретно для каталога. Всё работает

Yaroslav
28.08.2017
10:09:45
Конечно

Andrey
28.08.2017
10:09:48
@aedigital

Google
Andrey
28.08.2017
10:09:48


но когда я передаю просто объект, то не работает, а если переделаю в формат url, то работает

в чем дело?

заголовки смотри



æ digital
28.08.2017
10:09:58
А вот ещё про вьютифай вопрос. Как дело обстоит с кастомизацией, если мне надо перебить стили? Вот есть их компонент, я хочу взять его за основу и доделать. Как это реализовывается?

Alexey
28.08.2017
10:10:20
Конечно
а тебя не смущает, что асинкдата вызывается и на сервере и на клиенте и по сути одни и те же данные фетчатся дважды?

æ digital
28.08.2017
10:11:07
@AndreyKlimash все ясно, успехов

Yaroslav
28.08.2017
10:11:33
Она не может вызываться на клиенте. Она вызывается только в app for server через метод router.getMatchedComponents()

Alexey
28.08.2017
10:13:12
в beforeMount

Andrey
28.08.2017
10:13:58
@AndreyKlimash все ясно, успехов
все ему ясно блять. подсказать не варинат вообще? для тебя пустяк, а мне сейчас гору интернетов перелопатить надо, чтобы разобраться.

Yaroslav
28.08.2017
10:14:46
Правильно, но это не одновременно. Метод beforeMount работает только на клиенте, следовательно это сработает только при переходах уже на стороне клаиента. Сначала на сервере грузим то что нжно для рендеренга на сервере. А потом это изолированная от сервера аппка

Google
Alexey
28.08.2017
10:16:29
Правильно, но это не одновременно. Метод beforeMount работает только на клиенте, следовательно это сработает только при переходах уже на стороне клаиента. Сначала на сервере грузим то что нжно для рендеренга на сервере. А потом это изолированная от сервера аппка
хука beforeMount точно вызовется на клиенте в любом случае перед монтированием компонента же. То есть почему вдруг хуки жизненного цикла компонента роута не должны вызываться на клиенте при сср?

ну и она по факту вызывается если дебажить

Yaroslav
28.08.2017
10:19:06
Ну и там вычисляем что уже было сматчено, потом что должно матчится

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() }

И уже то что не сматчено подтягивается

Alexey
28.08.2017
10:22:41
хм

я использовал второй вариант

Fetch data after the matched view is rendered

Yaroslav
28.08.2017
10:23:39
Единственное нужно проверить что бы когда заходит изначально отрендеренная страница to === from

Alexey
28.08.2017
10:24:39
Единственное нужно проверить что бы когда заходит изначально отрендеренная страница to === from
хорошо, предположим. Но как тогда в модуль стора попадут данные?

Yaroslav
28.08.2017
10:24:55
Изначально?

Stanislav
28.08.2017
10:25:01
покажи код

Alexey
28.08.2017
10:25:01
на клиенте

Stanislav
28.08.2017
10:25:43
post или get отправляешь?

Andrey
28.08.2017
10:26:06
Alexey
28.08.2017
10:27:28
Изначально?
ну то есть сам стор на клиенте вставляется в инстанс через replaceState а оно не заменяет стейт модулей, только глобальный

Yaroslav
28.08.2017
10:29:04
Оно и не должно заменять, оно дожно формировать можно сказать изначальный стейт относительно роута. И уже дальше анон будет переходить по приложению и подтягивать нужное, относительно того на какой урл он ходит

Stanislav
28.08.2017
10:29:33
1.вообще, у тебя на скрине выше говорит, что сервер не нашел такой урл 2. Хрен его знает что там под this.$http

Google
Andrey
28.08.2017
10:30:06
непонятно почему не находит, когда я передаю объект а не url строку

Stanislav
28.08.2017
10:30:50
this.$http это axios
если верить доке axios, то data это объкт

непонятно почему не находит, когда я передаю объект а не url строку
ну посмотри в девтулзах какой запрос уходит

Andrey
28.08.2017
10:31:13
если верить доке axios, то data это объкт
вот поэтому я в замешательстве

Yaroslav
28.08.2017
10:31:46
У меня на сервере подтягивается состояние для модуля app, и формируется каталог в модуле catalog например, всё это приходит с сервера и формурует первое состояние вообще всей сторы

Stanislav
28.08.2017
10:31:50
this.$http это axios
ты сам запихнул axios в прототип ? Или плагин какой

Stanislav
28.08.2017
10:32:16
обертка vue-axios
А ты исходный код его смотрел?

Andrey
28.08.2017
10:32:35
А ты исходный код его смотрел?
неа, думаешь проблема там?

Nikita
28.08.2017
10:33:03
обертка vue-axios
почему бы не посмотреть доки к нему?

Alexey
28.08.2017
10:33:09
Оно и не должно заменять, оно дожно формировать можно сказать изначальный стейт относительно роута. И уже дальше анон будет переходить по приложению и подтягивать нужное, относительно того на какой урл он ходит
но ведь это вызывает некоторую проблему, Данные фетчатся в стор, рендерится верстка. Данные из стора привязываются через computed в компонент. Все это на сервере. Рендерится верстика. Клиент ее получает. Но на клиенте то в сторе нет этих данных. Получается расхождение между реальным домом (который построен из верстки полученной с сервера) и виртуальным домом

Yaroslav
28.08.2017
10:33:38
Есть эти данные

Я понял

Alexey
28.08.2017
10:33:44
откуда?

Stanislav
28.08.2017
10:33:48
неа, думаешь проблема там?
А я знаю? Ты можешь 100% сказать, что твой плагин не изменяет формат объектов, которые передаются axios? Может в плагине нет поля data

Yaroslav
28.08.2017
10:33:57
покажи мне как ты рендериш строку

на сервере

Stanislav
28.08.2017
10:34:11
неа, думаешь проблема там?
Нахрен он тебе вообще нужен? Возьми обычный axios

Google
Stanislav
28.08.2017
10:34:56
ща попробуем
Посмотри сначала че там на сервер уходит, какие запросы

Nikita
28.08.2017
10:34:58
@AndreyKlimash https://medium.com/the-vue-point/retiring-vue-resource-871a82880af4

последний абзац

Stanislav
28.08.2017
10:36:33
последний абзац
https://www.youtube.com/watch?v=tSJD2X5YdZI

Alexey
28.08.2017
10:37:09
покажи мне как ты рендериш строку
https://gist.github.com/anonymous/0762a55e3f230afdc2bb0c73f5f4204e

Nikita
28.08.2017
10:37:09
https://www.youtube.com/watch?v=tSJD2X5YdZI
так я тебе ссылку на статью дал, наверно там нужно отвечать автору фреймворка?)

Nikita
28.08.2017
10:37:52
ой все

Alexey
28.08.2017
10:38:46
покажи мне как ты рендериш строку
ну и там еще в createBundleRenderer подключается HMR. Я брал с примера эвана и незначительно модернизировал под свои нужды, но вся логика идентичная

Admin
ERROR: S client not available

Alexey
28.08.2017
10:39:15
при этом в верстке у меня стейт модулей есть

в window.__INITIAL_STATE_ данные есть

Yaroslav
28.08.2017
10:40:28
ну и там еще в createBundleRenderer подключается HMR. Я брал с примера эвана и незначительно модернизировал под свои нужды, но вся логика идентичная
Я не использовал манифесты и createBundleRenderer я к сожалению не знаю как там передается изначальный стейт, вижу что контекст идет в формирование html строки

в window.__INITIAL_STATE_ данные есть
так почему тогда изначальный стейт не привязывается к сторе?

Yaroslav
28.08.2017
10:41:28
Ошибки сыпятся в консоли?

Alexey
28.08.2017
10:42:00


все как бы работает

приложение все рабоатет

Google
Alexey
28.08.2017
10:42:32
просто дело в том что replaceState заменяет только глобальный стейт

то есть глобальный стейт у меня фетчится на ура. А вот стейт модулей пуст

Yaroslav
28.08.2017
10:43:11
все как бы работает
Я праильно понимаю, что если Client Data Fetching убрать вообще, при первой загрузке страницы у тебя пустой стейт?

Yaroslav
28.08.2017
10:44:01
Давай смотреть что приходит у меня и у тебя в инитишиал стейт

я сейчас сделаю у себя для сравнения

Alexey
28.08.2017
10:47:03
я сейчас сделаю у себя для сравнения
https://gist.github.com/anonymous/2e570f9524d996f3257134a13f128441

включая данные модулей стора

registration, напрмиер, это данные модуля стора

НО

https://vuex.vuejs.org/en/api.html



"ROOT state"

то есть данные в initial state есть, но когда они вставляются на клиенте в инстанс через метод replaceState они тупо не попадают в стор. То есть глобальный стейт попадает, а стейт модуля нет

Yaroslav
28.08.2017
10:50:31
Попробуй всё что у тебя в глобальном стейте тоже вынести в отдельный модуль

Alexey
28.08.2017
10:52:16
Попробуй всё что у тебя в глобальном стейте тоже вынести в отдельный модуль
пробовал. У меня есть модули со стейтом, в них как раз данные и не попадают, если не фетчить их повторно на клиенте

потому что они не могут туда попасть никак, ибо replaceState только глобальный стор коппирует

им просто неоткуда там взятся

Страница 1231 из 3900