
Roman
26.08.2017
12:48:04

Den
26.08.2017
12:49:28
что?)) в смысле?!
Ну да, сервер должен дождаться завершения всех асинков перед отдачей респонса
Грубо говоря - синк

Roman
26.08.2017
12:49:57

Google

Den
26.08.2017
12:52:02

Yaroslav
26.08.2017
12:54:13

Roman
26.08.2017
12:54:52
для того чтоб дождаться асинхронных компонентов на серваке в таком случае нужно пройтись по древу дочерних компонентов активного Router компонента
но Илья вчера уточнил что это якобы так просто не сделаешь
намного логичнее было бы сделать этот проход во время компиляции, т.е. с помощью webpack'а нежели во время рендеринга

Den
26.08.2017
13:12:16

Roman
26.08.2017
13:12:53
Что???
проход по древу и состалвление flat map tree, т.е. списка асинхронных компонентов, которых нужно дождаться прежде чем рендерить сайт

Den
26.08.2017
13:13:07
Ааа
Я уж подумал...
)))

Roman
26.08.2017
13:14:03
тогда рендеринг будет ни чуть не медленее нынешнего подхода с asyncData, лишь компиляция чуток медленее (не думаю что разница будет значительной)
но вот как это реализовать вообще xuj знает

Google

Roman
26.08.2017
13:15:15
есть какие нибудь группы по Webpack'у конкретно?

Den
26.08.2017
13:15:48
По ярну на дисорге
Чекни гугл

Roman
26.08.2017
13:16:24
нее, Yarn это же dependency management типа NPM, это же не компилятор как вебпак?

Dmitriy
26.08.2017
13:17:52
привет всем

Roman
26.08.2017
13:18:09

Dmitriy
26.08.2017
13:19:38
гайс, подскажите ... задачка после клика на страницу (пагинатор) делать плавный подъем до начала списка . может какой плагин есть, не хочу писать логику для этой фичи

Den
26.08.2017
13:20:29
scrollBehavior пропиши - не ленись

Stanislav
26.08.2017
13:20:39
ПЛАВНЫЙ же
или он умеет ?

Dmitriy
26.08.2017
13:21:43
scrollBehavior это что такое? )

Rai
26.08.2017
13:22:08
Привет всем, на сколько nuxt хорош ? Стоить ли использовать его в качестве основного движка для допустим spa админки ?

Den
26.08.2017
13:22:17

Yaroslav
26.08.2017
13:22:57
Собрать все необходимые данные из asyncData как раз не проблема на сервере, и даже их можно к контексту прицепить. Но вот renderer походу не умеет их подцеплять к компонентам

Dmitriy
26.08.2017
13:23:17

Stanislav
26.08.2017
13:23:17

Valerii
26.08.2017
13:23:17
Ребят привет!
Нужно вызвать функцию чайлда с родителя, как адекватно это сделать?
Я понимаю что так быть не должно, архитектуру не я задавал, просто нужно сделать что-то типа broadcast ангуларовского.

Stanislav
26.08.2017
13:23:58
Но ты сам себе Буратино :)

Den
26.08.2017
13:24:41

Google

Den
26.08.2017
13:24:50
Но ты сам себе Буратино :)

Valerii
26.08.2017
13:25:09
под глобальной шиной vuex подразумевается?

Den
26.08.2017
13:25:24

Stanislav
26.08.2017
13:25:25

Stanislav
26.08.2017
13:26:29

Stanislav
26.08.2017
13:27:20

Valerii
26.08.2017
13:27:35
$bus
почитал, мне только один раз это сделать нужно, так что $bus регистрировать смысла наверное нет. Но спасибо за идею, думаю как оповещатель события по всем компонентам неплохой подход

Stanislav
26.08.2017
13:28:06

Stanislav
26.08.2017
13:29:05

Stanislav
26.08.2017
13:29:43
ну в роутере же хочется смутх
или не хочется. как рулить этим ?

Stanislav
26.08.2017
13:32:11
лан я понял кажется ничего не решено ) https://www.reddit.com/r/vuejs/comments/5okcgo/vuerouter_route_transitions_and_improper_scroll/

Den
26.08.2017
13:33:30
Он мне тоже глючным показался

Stanislav
26.08.2017
13:34:54

Stanislav
26.08.2017
13:35:32
Он мне тоже глючным показался
ну его глючность это старый вопрос я там километровй комент накатал но никто не увидел потому что тикет закрыт походу
короче вот https://github.com/vuejs/vue-router/blob/dev/src/util/scroll.js#L38
он кроме window.scrollTo ничего не умеет
но мог бы уметь например тот же window.scrollBy({ top: -100, left: 0, behavior: 'smooth' });
я думаю это даже не сложно запилить

Google

Stanislav
26.08.2017
13:37:13

Den
26.08.2017
13:37:23
Ога

Stanislav
26.08.2017
13:37:55
я слишком безработный чтобы делать такие вещи )

Den
26.08.2017
13:38:28
Беззаботный

Alex
26.08.2017
13:40:42

Stanislav
26.08.2017
13:40:55
олсо ПР ничего не даст, там нужен пророческий архитектурный гений вани чтобы сделать такое апи чтобы юзеры не сошли с ума
я бы вообще решил какойнибудь фабрикой обьекта ScrollBehaviourPolicy который бы можно было наследовать и переопределить что угодно в том числе и весь https://github.com/vuejs/vue-router/blob/dev/src/util/scroll.js#L59 но это во взрослом языке и взрослом фреймворке )

Alex
26.08.2017
13:45:18
Стрим кода + тебя) норм, лайвкодинг многие устраивают

Stanislav
26.08.2017
13:46:19
всё что касается говорения у меня всё с этим плохо

Admin
ERROR: S client not available

Stanislav
26.08.2017
13:53:32
я мечтаю о формате уровня https://www.youtube.com/watch?v=EdejtjXEhzs но програмисты слишком плавают в программировании чтобы воспринимать архитектурные решения эмоционально

Den
26.08.2017
14:04:55
Надо работать, а не мечтать )

Alex
26.08.2017
14:08:14

æ digital
26.08.2017
14:12:33
СкролТу это известный косяк роутера, они в курсе вроде как

Illya
26.08.2017
14:18:42
для этого надо вычислить состояние компонента
что аналогично рендеру
представьте что у вас v-if который рендерит один из двух компонентов
для того чтобы понять какой компонент надо асинхронно ждать - надо вычислить состояние v-if

Google

Illya
26.08.2017
14:19:42
которое может быть завязано на компьютерд, которые завязаны на data, которая завязана на пропсы пришедшие из компонента сверху
смерть в яйце, яйцо в зайце, заяц в утке, утка в шоке

Dmitry
26.08.2017
14:24:06
???

Yaroslav
26.08.2017
14:24:56
Получается, что если у нас в компоненте есть n вложеностей и у половины из них есть asyncData и в этих функциях есть что-то что возвращает данные, то все эти данные мы то получить можем перед рендером, но вот без vuex никак прокинуть в компоненты мы не можем. Да?

Illya
26.08.2017
14:27:29
можем всякими странными хаками, но vuexв этом случае оптимаьлное решение


Roman
26.08.2017
14:29:18
я тут обратился в англоязычный портал Reactiflux:
Hey guys!
Long Story Short:
We need Webpack to traverse the applications component tree during compilation and generate a flat dependency-tree-map for each view registered in the router, is this theoretically possible?
Short Story Long:
Currently SSR (server-side-rendering) support in Vue is implemented using an asynchronous hook called asyncData on components registered by the router. The problem is: this only allows for smart route-components (AKA "views" or "pages") exclusively, unfortunatelly there's no way to make any component beneath the views become smart. The view becomes responsible for fetching all the data and executing all asynchronous operations before the page is rendered letting the data flow down the tree of dumb components. This is far from ideal because usually you'd want to split up the application into multiple, independent, individual smart components, but instead, if you want SSR support, you have to make the view component "super-smart" and everything beneath it - just dumb, not good!
The Idea:
We need equality! Every component throughout the application should be able to perform some asynchronous operations before the page is considered ready and is finally rendered by the server. Therefore we need to compose a component dependency-tree. Though because it would be ridiculously inefficient to traverse the tree of components for a certain view everytime the Node.js server renders the application it must be done during the compilation process, and that is where Webpack comes to my mind. Webpack must traverse the entire component tree and create some kind of a flat dependency-tree-map, which is then kind of "exported" to the JavaScript that's executed on the server as well as on the client. This would allow the server to wait for asynchronous smart components to finish their async work before the page is rendered and the resulting HTML is returned to the client.
What do you guys think about it? Please let me know ?


Yaroslav
26.08.2017
14:30:05

Illya
26.08.2017
14:30:42
нет, это понадеяться на то что дерево рендеринга на сервере и клиенте сойдется, и грубо говоря "перенумеровать" компоненты

Roman
26.08.2017
14:31:08

Illya
26.08.2017
14:31:12
как здесь делают - https://github.com/fenivana/vue-ssr-boilerplate/blob/master/src/shared/ssrMixin.js
чтобы запустить рендер надо создать инстанс компонента, чтобы создать инстанс компонента надо запустить зависимости
это все уже совсем не "compile-time"
а теперь представим простейшую ситуацию, что рендер верхнего уровня зависит от того - пришел нам токен пользователя в запросе или нет
(залогинен или нет)
все, приплыли
компайл тайм бесполезен

Roman
26.08.2017
14:32:59

Illya
26.08.2017
14:33:08
неплохо но очень опасно
мы с этим сталкивались на проекте

Yaroslav
26.08.2017
14:33:53
А они этот INITIAL_COMPONENTS_STATE на контекст вешают на сервере?

Illya
26.08.2017
14:33:56
когда у нас "тикало время" в одном из компонентов - в итоге всякие интересные побочные эффекты, когда на сервере рендерился еще обратный отсчет, а на клиенте уже "войти в игру" (по честному, просто время пришло) - дерево компонентов не совпадало