
Valeriy
27.09.2018
10:27:57
все что можно было там разрулить адаптивной версткой было адаптировано и так

Nathan
27.09.2018
10:28:00
я же в вуй чате ?

Kernel
27.09.2018
10:28:30

Valeriy
27.09.2018
10:28:41

Google

Valeriy
27.09.2018
10:28:48
которые сами по себе и так декларативны
и делать еще одну декларативную надстройку над ним как то странно
то что ты опишешь правила для каждого поля где то там снаружи, получится по сути тоже самое что ты опишешь их на языке шаблонов vue внутри template

Nathan
27.09.2018
10:29:53
все разруливаеться через state

Alex
27.09.2018
10:30:33

Alexander
27.09.2018
10:31:16

Valeriy
27.09.2018
10:32:22

Alex
27.09.2018
10:33:27

Valeriy
27.09.2018
10:33:35
1. валидация по сабмиту всех значений полей синхронно/асинхронно
2. валидация отдельных полей по блюру/асинхронно
на самом деле если форма действительно сложная, я бы воспользовался каким нибудь final-form
по крайней мере с валидациями проблем не будет уж точно

Vladimir
27.09.2018
10:34:23

Kernel
27.09.2018
10:34:25
я валидацию по блюру сделал пока что.
у меня засада в том как показывать нужные поля без дублирования кода. чтобы они шли один за другим

Google

Valeriy
27.09.2018
10:34:59
ты сначала сделай так чтобы все работало просто
рефакторинг это следующая итерация уже
ну и само собой 3 это валидация на бакенде еще
это то что асинхронно по сабмиту собственно

Kernel
27.09.2018
10:36:40
чтобы оно работало - надо придумать как показывать поля в нужной последовательности :)
В шаблоне у меня идут списком:
<tag v-if=choosen(1)">
<tag v-if=choosen(2)">
<tag v-if=choosen(3)">
Проблема как показать 3й tag перед первым

Valeriy
27.09.2018
10:38:10
можно либо через flex порядок разрулить
либо через display: box, box-ordinal-group

Ѵɑsilii
27.09.2018
10:43:40
о инвалидно выглядит

Vlad
27.09.2018
10:44:49
<slot>

Ѵɑsilii
27.09.2018
10:45:29
блин, точно.
Спасибо

Vladimir
27.09.2018
10:55:11
let data = [
{
name: 'a'
status: false,
el: "element link"
variants: [
{
name: 'b'
status: false,
el: "element link",
variants: [
{
name: 'd',
status: false,
el: "element link",
variants: []
},
{
name: 'e',
status: false,
el: 'element link',
variants: [
{
name: 'c',
status: false,
el: 'element link',
variants: []
}
]
}
]
},
{
name: 'c'
status: false,
el: "element link",
variants: [
{
name: 'e',
status: true,
el: 'element link',
variants: []
}
]
}
]
}
];

Kernel
27.09.2018
10:56:00
хм

Vladimir
27.09.2018
10:56:49
Можно прожодить при каждом изменении в форме рекурсивно по всему дереву и отрисовывать элементы, если выбрано какое то поле ( например а ) то его статус в true и рисовать варианты
и тд

Kernel
27.09.2018
10:57:08
ага, я в принципе понимаю идею

Illya
27.09.2018
10:57:27
для таких сценариев идеально использовать рендер-функции

Google

Vladimir
27.09.2018
10:57:51
Это причем расширяемо, если попросят например новые варианты ответов завести, просто меняешь этот конфиг и он автоматом все подхватывает

Kernel
27.09.2018
10:57:54

Valeriy
27.09.2018
11:10:59
поэтому сделали простой шаблонизатор
чтобы не описывать варианты структуры, не парсить ее потом и не рендерить
а сразу на языке шаблона всзять и описать

Vladimir
27.09.2018
11:13:23

Valeriy
27.09.2018
11:16:33
в зависимости от значения ключевого поля выводишь нужные блоки, ненужные прячешь
в нужных блоках в зависимости от ключевого значения поля выставляешь порядок расположения полей через стили

Vladimir
27.09.2018
11:19:06

Valeriy
27.09.2018
11:19:36
полезу править туда, где выставлен порядок полей

Vladimir
27.09.2018
11:20:05

Valeriy
27.09.2018
11:20:09
но это будет очевидно зато

Vladimir
27.09.2018
11:20:37
let data = [
{
name: 'a'
status: false,
el: "element link"
variants: [
{
name: 'b'
status: false,
el: "element link",
variants: [
{
name: 'd',
status: false,
el: "element link",
variants: []
},
{
name: 'e',
status: false,
el: 'element link',
variants: [
{
name: 'c',
status: false,
el: 'element link',
variants: []
}
]
}
]
},
{
name: 'c'
status: false,
el: "element link",
variants: [
{
name: 'e',
status: true,
el: 'element link',
variants: []
}
]
}
]
}
];
Что может быть очевиднее этого?)

Valeriy
27.09.2018
11:20:40
а вот ты сделав мегаструктуру с объектом потом реально раком можешь встать с такой формой
ибо при смене условий, тебе придется и структуру поддерживать эту и тот парсер который ее рендерит

Vladimir
27.09.2018
11:21:56

Google

Valeriy
27.09.2018
11:22:29
стили это как вариант простой перестановки элементов в flex-box

Vladimir
27.09.2018
11:22:30

Valeriy
27.09.2018
11:22:35
че там вставать раком то?
а так ему придется ограничиться только знаниями vue/css
я таких гребаных велосипедов насмотрелся уже огого

Evheniy
27.09.2018
11:23:46
я могу юзать геттеры из стора в beforeRouteEnter?

Valeriy
27.09.2018
11:23:58
с метапрограммированием и всякими велосипедными структурами

Evheniy
27.09.2018
11:24:13
если да, то как их туда прокинуть, потому как бьет undefinde

Admin
ERROR: S client not available

Леха
27.09.2018
11:24:26

Evheniy
27.09.2018
11:25:24
окей, thx

Vladimir
27.09.2018
11:32:58

Valeriy
27.09.2018
11:33:47

Alex
27.09.2018
11:50:25

Valeriy
27.09.2018
11:51:41

Alex
27.09.2018
11:52:12

Valeriy
27.09.2018
11:54:49
эх... речь же о том, что есть уже стандартный придуманный шаблонизатор
а тут вдруг приходится изобретать надстройку над ним, чтобы решить задачи, который он прекрасно и так позволяет решать

Google

Alex
27.09.2018
11:56:08

Valeriy
27.09.2018
11:58:19

Alex
27.09.2018
11:58:23
поддерживать компонент, в котором будет 70 зависимых полей, из которых реальных 50 - это жесть же?

Valeriy
27.09.2018
11:58:31
завтра придет чудик на проект и захочет этот объект отдавать с сервера
послезавтра придет другой чел и будет долго искать откуда что берется
так рождаются говнопроекты

Alex
27.09.2018
12:00:57
мне кажется конфиг вполне читаемый даже без особых знаний об остальных частях - а если кто-то приходит и делает хуже, то его палкой нужно бить прост

Valeriy
27.09.2018
12:01:33
я о том, что сам путь в никуда
глядя в vue шаблон каким бы он не казался большим или небольшим, его всего можно оптимизировать в конце концов
понять что пошло не так и легко поправить

Vladimir
27.09.2018
12:02:19

Valeriy
27.09.2018
12:02:40
а когда ты устраиваешь вот такие пляски с бубнами, они в итоге приводят к проблемам

Alex
27.09.2018
12:02:42

Vladimir
27.09.2018
12:03:08

Alex
27.09.2018
12:03:29
и скорее всего что-то проглядишь

Valeriy
27.09.2018
12:03:46
шаблон vue как раз для этого и разработан, чтобы логику презентации данных описать простым языком
вот реальный пример из жизни
тоже в проекте так чувак сделал сначала такой же объектик