Anton
@c01nd01r у меня есть подозрение, что говорим об одном и том же, с разных сторон :)
MXLTN
Вы меняете пропс изнутри, а это нарушение цепочки пропсы-сверху, эвенты-снизу
ок, как тогда менять состояние компонентавнтури компонента не трогая пропсы который приходят отродителя?
Anton
Компонент работает с data и computed
Anton
Это его, скажем так, локальная копия данных
MXLTN
как передать компоненту не через пропсы а через дату при инициализации?
Anton
Дата в данном случае станет дефолтным конфигом
Anton
Компоненту нельзя отдать что-то не через пропсы
MXLTN
вот
Anton
Есть 2 варианта - пропсы и стор (иногда эвент-бас, но его не рекомендуют)
Stanislav
как передать компоненту не через пропсы а через дату при инициализации?
компоненты не педеются через пропсы в Vue (по филосовским причинам) Только данные.
MXLTN
ок, тогда я передаю пропсы который опередяют изначальное состояние
Anton
Да
Anton
Они же могут и поменять потом в дальнейшем состояние управляемого компонента
MXLTN
MXLTN
но если я реализую логику обновления состояния не сервере внутри компонента
Anton
Имеете ввиду полученные данные потом мутировать?
MXLTN
MXLTN
сейчас я привязываю props active к модели чекбокса
MXLTN
это видимо неправильно
Anton
Да
Anton
Надо локальную дату привязать к чекбокссу
Anton
И потом эмитить в родитель изменения
Anton
У вас задача стоит сообщить родителю данные из чекбокса - это делается через $emit
Anton
то есть надо с помощью события данные отдать
Anton
paren -> child = props child -> parent = event
Stanislav
Надо локальную дату привязать к чекбокссу
Локальная дата тут не нужна) Состояние через пропс, а изменения сразу emit
Anton
Я ниже про это написал. Просто если нужна будет v-model, придется юзать data скорее всего
pinelover
подскажите плс есть ли хорошие темплейnы/бойлерплейты сделать на vue сайт портфолио себе? главное, чтобы разделы были разные
Anton
В vue-awesome полно всяких
MXLTN
то есть надо с помощью события данные отдать
мы просто выше обсуждали что алтернативно все операции с сервером можно делать в компоненте
MXLTN
я не хочу разбивать логику между компоненом и родителем
MXLTN
хочу что бы компонент сам отправил все на сревак и обновил статус свой
MXLTN
в таком случа отправлять родителю не нужно
MXLTN
можно просто сделать axios.patch внутри компонента
MXLTN
но как обновить состояние конпонента если нельзя трогать props ?
Stanislav
но как обновить состояние конпонента если нельзя трогать props ?
Родительского компонента? Отправить событие
MXLTN
или в целом компонент не может обновлять свое состояния
Stanislav
собственноей
Если компонент сам отправляет свои данные, то зачем ему пропсы?) Он внутри себя все хранит.
MXLTN
Если компонент сам отправляет свои данные, то зачем ему пропсы?) Он внутри себя все хранит.
о, уже теплее, тогда через пропсы мы не пеедаем компоненту данные, а как иначе передать тогда?
MXLTN
в целом задача простая - есть массив объектов на входе, объект с атрибутом status: treu/false нужно нарисовать список объектов с чекбоксом по status, если я нажимаю на чекбокс - слать на серверт patch по объектуу и обновлять его состояния не сервере ну и на фронте соответственн
MXLTN
так вот родитель у меня получает собственно массив
MXLTN
и потом отрисовывает компонент для каждого объекта передавая пропсы
MXLTN
когда я нажимаю на чекбокс - компонент ловит это событие и шлет на сервер патч для обновления состояни
MXLTN
вопрос - как обновить атрибут компонента на новое состояния если трогать пропсы нельзя?
pinelover
В vue-awesome полно всяких
Спасибо, посмотрю
Vladyslav
В общем, такой вопрос, для свежего холивара. Запросы к API выполнять в экшенах Vuex. True - false?
Tom
как хочешь)
Vladyslav
Добавлю что конечно все API будут в сервисе, но их вызов будет в экшенах Vuex
MXLTN
тобишь в компоненте?
Vladyslav
Нет, в самом экшене vuex
Vladyslav
Например, имеем компонет User в vuex. У него есть действие LoginIn и запрос к авторизации будет вызван в этом действии. А мутация будет конечно вызвана лишь в случаи если ответ от сервера - ок
Tom
более чистые компоненты
Vladyslav
Тогда все управление данными остается в vuex
Vladyslav
и Vuex не будет просто хранилищем, а уже сервисом работы с данными
Serge
Не пойму нахрена вы все в vuex тащите
Tom
всмысле нельзя?
Vladyslav
@c01nd01r в моем приложении, есть еще множество релаций юзера которые очень удобно и логично вынести как отельные компонент vuex. 😊
Tom
передавай пропсом обновленное значение и все
Tom
🙂
MXLTN
ну нельзя менять пропсы изнутри компонента вроде
Vladyslav
@obsly почему?))
Tom
тебе наверх данные передать нужно?
MXLTN
да не очень
Tom
обновить пропсы для родительского компонента, или для какого-то компонента не находящегося в иерархии parent -> child?
MXLTN
компоненту внутри себя отправить запрос на сервак и обновить свое же состояние по результтау
Vladyslav
@c01nd01r разные компоненты меняют эти данные в разных местах приложения.
MXLTN
но изначально данные он принимает от родителя через пропсы
Tom
все просто
Tom
получил через пропс, сделал копию в data
Tom
потом уже обновляешь дата
MXLTN
волшебно) то есть это норм метод?
Tom
копию можешь сделать через JSON.parse stringify