
Yaroslav
26.08.2017
10:37:20
о, спасибо за детяльный разбор! а вот почему я из доки ничего про created не слыхал?
Все хуки жизненного цикла есть в документации. По ssr есть уточнение что где и как работает.
Вообще пишите сюда свои реализации будет интересно почитать.
МЫ тоже пилим платформу торговою. Но там специфики поменьше и я сейчас експерементирую с веб-воркерами, которые возвращают генератор, и пагинация это тупо некст генератора. Но это пока просто баловство

Владимир
26.08.2017
10:42:32
Всем привет. У меня такой вопрос!
Работаю с Firebase, и надо получить данные об авторизованном пользователе глобально, хочу поместить ответ в хранилище. Все мои попытки тщетны, т.к. данные поступают через некоторое время и не получается обновить значение переменной.
Как лучше поступить в такой ситуации, чтобы можно было обновить значение переменной когда будет получен ответ от Firebase?

Yaroslav
26.08.2017
10:43:23
Через промис

Владимир
26.08.2017
10:47:47
Через промис
Спасибо, попробую через обещания сделать, но мне кажется есть другой способ, средствами самого vue?

Google

Yaroslav
26.08.2017
10:48:27
Если кажеться, то есть довольно популярный описанный в анекдотах и фильмах совет

Владимир
26.08.2017
10:49:20

Yaroslav
26.08.2017
10:50:07
vue = js = асинхронное программирование

Roman
26.08.2017
11:07:06
https://github.com/vuejs/vetur/issues/261
однако так и не понял что собственно не так..
вроде как код рабочий, и даже если v-for="(key, product) in products" напишу - та-же херня
я точно всё правильно делаю в плане кода и это лишь баг linter'а?
хотя да, эт походу баг

Rafael
26.08.2017
11:10:59
Нет, ты неправильно делаешь

Roman
26.08.2017
11:11:06

Rafael
26.08.2017
11:11:19
Для v-for нужно указывать :key

Google

Rafael
26.08.2017
11:12:05
Про это ещё в доках по vue написано

Roman
26.08.2017
11:14:10
так вот странно что если как в доках написать то всё-равно ругается на внутренний элемент

Den
26.08.2017
11:14:47
(product, key)
template!!!!!!!
Переименуй второй

Roman
26.08.2017
11:16:42
не ругается только если на router-link атрибут добавить :key="product.id"
только я логики не понимаю, нафига?!

Den
26.08.2017
11:17:00
template!!!!!!!

Roman
26.08.2017
11:17:17

Yaroslav
26.08.2017
11:17:27
template!!!!!!!
Дэн, что темплате? Что не так. Или ты опять за старое херь пороть?

Den
26.08.2017
11:17:43
Зарезервированный же элемент

Yaroslav
26.08.2017
11:18:45
https://ru.vuejs.org/v2/api/#template

Den
26.08.2017
11:19:59

Yaroslav
26.08.2017
11:20:14
Не нашел там
https://ru.vuejs.org/v2/guide/list.html#v-for-%D0%B8-template
Не то с поиска взял

Roman
26.08.2017
11:20:55
оу
вот так вроде норм

Google

Roman
26.08.2017
11:21:41
только не product.key a product.id, сморозил тоже))

Yaroslav
26.08.2017
11:21:46
Вообще списки желательно через ul выводить, это база.

Roman
26.08.2017
11:22:26
я-ж просто элемент несколько таз повторить хочу

Den
26.08.2017
11:23:00
Запости это текстом плиз

Roman
26.08.2017
11:23:27
<template><div class="grid">
<router-link
class="link"
v-for="product in products"
:key="product.id"
:to="{name: 'product', params: {productId: product.id}}">
<product-card
class="card"
:name="product.name"
:previewImageUrl="product.pictures[product.previewPicture]"
:price="product.price / 100"
currency="€">
</product-card>
</router-link>
</div></template>

Yaroslav
26.08.2017
11:23:34
хмм, а зачем?
это к верстальщикам, есть же ридеры всякие, которые html по другому видят. Это гуглицца

Roman
26.08.2017
11:24:09
однако онлайн-магазин в ридере читать это по-моему извращение))))

Yaroslav
26.08.2017
11:26:22

Den
26.08.2017
11:27:03

Roman
26.08.2017
11:27:04
бывает))

Roman
26.08.2017
11:28:23
ну.. да, можно конечно и так

Den
26.08.2017
11:29:26
Так ты сможешь далее изменять <product-card /> как хочешь

Igor
26.08.2017
11:30:28
Поделитесь, вы разделяете на серверный проект и клиенский, или делаете общую структуру?
Сервер node, клиент vue-cli

Den
26.08.2017
11:31:08
:previewImageUrl
лучше писать
:preview-image-url
@Romshark

Igor
26.08.2017
11:32:38

Den
26.08.2017
11:33:19

Roman
26.08.2017
11:33:44
@yarossl кстати, я в created компонента возвращаю Promise
data() {
return {
loading: true,
products: {}
};
},
created() {
console.log('created hook');
return new Promise((resolve, reject) => {
setTimeout(() => {
console.log('fill data');
this.products = testdata;
this.loading = false;
resolve();
}, 1000);
});
}
но такое чувство будто он когда на сервере рендерит этого промиса не дожидается ибо при перезагрузке страницы он теоретически же должен секунду обождать и через секунду только вернуть полностью отрендеренную страницу, а он мне при перезагрузке loading screen отображает

Google

Roman
26.08.2017
11:34:01
или asyncData похрен на тот промис что из created возвращается?

Igor
26.08.2017
11:34:25
А сервер че?
А сервер это nodejs + express. Тоесть клиент общается с сервером через api.
Как будет правильнее разделить структуру, на 2 проекта отдельных или перемешать все зависимости в один

Den
26.08.2017
11:35:09

Roman
26.08.2017
11:35:13

Igor
26.08.2017
11:35:42

Den
26.08.2017
11:35:49

Yaroslav
26.08.2017
11:35:58

Den
26.08.2017
11:36:38

Igor
26.08.2017
11:36:47

Admin
ERROR: S client not available

Den
26.08.2017
11:37:06
Пусть его Express и отдает

Igor
26.08.2017
11:38:36
Пусть его Express и отдает
В таком случаи у меня будет package.json, где мне нужно забилдить клиент, запустить api и они все будут иметь общие зависимости. Как то монолитно слишком

Roman
26.08.2017
11:38:51

Den
26.08.2017
11:39:13

Igor
26.08.2017
11:40:20

Alexandr
26.08.2017
11:40:45
а какая задача

Igor
26.08.2017
11:42:52
Наверное сделаю 2 отдельных проекта, но при запуске сервера буду отдавать статику с соседнего проекта..
Хочется какой-то архитектуры MVC но пока не нашел этого решения

æ digital
26.08.2017
11:44:46
https://alligator.io/js/copying-to-clipboard/

Google

Den
26.08.2017
11:45:13

Alexandr
26.08.2017
11:46:13
Изоморфное приложение

Igor
26.08.2017
11:46:35

Alexandr
26.08.2017
11:47:20
Да, тебе нужна такая реализация, вот типа Adonis как пример фреймворка
https://ru.vuejs.org/v2/guide/ssr.html
вот кстати есть оф. указание на NuxtJS
я правда не работал

Igor
26.08.2017
11:50:30

Den
26.08.2017
11:51:11

Igor
26.08.2017
11:52:03
MVC я имел ввиду .net

Alexandr
26.08.2017
11:52:10
Изоморфное приложение - это универсальное. У тебя есть и статика сразу и API
и сервер связан с клиентом

Den
26.08.2017
11:52:31

Alexandr
26.08.2017
11:52:38
и проблем с SEO нет

Den
26.08.2017
11:52:56

Lev
26.08.2017
11:53:17
Как все же лучше - готовить данные в экшенах сразу так, чтобы их было просто отобразить или делать это преобразование в компонентах?

Den
26.08.2017
11:54:05

Stanislav
26.08.2017
11:54:23

Igor
26.08.2017
11:54:30
Adonis - именно на JS
Я посмотрю, спасибо. Но я имел ввиду именно структуру проекта, когда есть разные проекты но все равно это один целый проект.

Lev
26.08.2017
11:54:37

Den
26.08.2017
11:55:01