Roman
по поводу моего утверждения о семантике компонентов в Vue
я таки правильно понял что в основном стейт компонента должен через value передаваться и мутироваться родителем посредством input события?
Roman
"value" как "нынешнее состояние"
другие компоненты как "параметры"
Stanislav
Roman
Да.
в таком случае компонент календаря должен читать выбранные дни и отображаемый месяц (год + месяц) из value а не двух отдельных пропов?
Alexander
напомните, плиз, в глобальном компоненте как получить текст между тегами?
<my-comp>как_это_прочитать_в_компоненте?<my-comp>
Roman
Stanislav
Roman
просто тут проблема производительности возникает я думаю... если добавляется выбранный день, то выстреливает input, который провоцирует передачу нового состояния в value, которая заставляет календарь перерисовываться
Stanislav
Roman
Roman
т.е. мы рисуем календарь заново, хотя тот не изменился вовсе, изменились лишь выбранные дни, т.е. тратим лишний CPU time
Stanislav
Sergey
Привет! Подскажите, плиз, как можно кастомизировать во vue-chartjs, легенды ? Может есть у кого ссылка на пример ?
Roman
Если изменился стейт, то и изменилось вью
не совсем.. изменился лишь список выбранных дней, сам по себе календарь остался на том же месяце, а значит нам не нужно заново вычислять его, что собственно и произойдёт..
Stanislav
Но на самом деле, если данные те же - вью не будет перерисовывать элемент (тут надо уточнять)
Evgheni
Roman
можно конечно хранить копию состояния внутри компонента и проверять, если value соответствует локальной копии то ничего не делать
Roman
Alexander
Alex
Sergey
Roman
Alex
можно и не копировать стейт
Roman
можно и не копировать стейт
я имел ввиду что по сути это тоже самое что и
<input v-model="txt"/>
т.е. копия текста и в моделе родителя и в самом компоненте
Alex
проброшенное значение из родителя
Roman
проброшенное значение из родителя
но если например не пробросить никакой v-model или :value то поле всё равно же будет работать, а значит там своя копия стейта компонента
Roman
так-же и тут.. если не дать например календарю v-model или :value, то всё-равно можно будет выбирать дни и навигировать по месяцам
Roman
если же не будет в самом компоненте копии его стейта то он тупо замёрнет, ни по месяцам ни полистаешь ни дней не выберешь, он мёртв без input'a родителя
Evgheni
Stanislav
Мне кажется, ты занимаешься преждевременной оптимизацией.
Evgheni
мне кажется он запутался в архитектуре
Evgheni
делать локальные копии уже в минус оптимизации
Michael
Roman
нет там копии, не рекомендуется изменять параметры НЕ через события
да я и не собирался мутировать propсы, это мне понятно.. я скорее о другом... о том что по сути вижу 2 варианта:
1. хранить состояние в родных переменных самого компонента и перезаписывать их watcher'ами на value
2. читать всё только из value, но тогда полностью зависить от родителя, если родитель не мутирует value то компонент мёртв, не работает
Roman
хотя с другой стороны... зачем нужен работающий компонент (месяца переключаются, дни выбираются) если эти данные всё-равно выбрасываются и никому больше не нужны...
Michael
Коллеги, кто что посоветует в аналоги квазара (просто потому что хочу узнать аналоги)? Надо мобильну версию сделать понативнее, например. Списька есть, но хочется каких-то советов отдуши ваще https://superdevresources.com/vuejs-mobile-frameworks/
Stanislav
Stanislav
ну вот не спеши, подумой...
Зачем тебе в календарике стей?
Календарик должен:
- Показать то, что ему сказали.
- Рассказать, если с ним взаимодействовали
Michael
Stanislav
Michael
Какой стейт?
анимации, выделения, какие-то временные хери, пролистывания
Michael
на ко чёрт это говно выше выносить
Michael
есть контракт, апи у компоненты: пропсы и ожидаемые простые как пробка эвенты.
Michael
Michael
Разделяйте апи и внутреннюю кухню.
Michael
Michael
Roman
Stanislav
Roman
Roman
а откуда тот берёт данные его неинтересует
Roman
Michael
А в контексте приложения может быть глобальный стейт, например, вьюекса
Roman
то что компоненты плохо изолированы от внешних воздействий это да, беда, особенно CSS
Stanislav
Это наше "наследие" :)
Michael
аа, ты про изолюцию...
да и не только. В приложуху может намеренно залезть порнобаннер из расширения с вирусом, заменённого днас и прочей ахинеи. Сталкивался на хуйлоаде, -- бывает и такое, а бывает юзеры думают на контору. После глубокого анализа телеметрий получается прикольная бигдата.
Michael
Stanislav
Michael
Evgheni
Michael
Roman
если например представить что сайт онлайн магазина напичкан разными гридами товаров, каждый из которых грузит определённые категории с фильтрами товаров то к сожалению все данные придётся грузить в компоненте страницы а не в самим компонентах.. что менее "правильно" с точки зрения архитектуры (isolation/encapsulation) но... с SSR не работает (пока-что)