@vuejs_ru

Страница 3382 из 3900
DimenSi
03.08.2018
16:50:54
Покажи кстать как ты меняешь массив, мне интересно, почему vue не жалуется на мутации

sir
03.08.2018
16:50:56
сейчас еще раз запробую, но кажется ошибку получал mutation...

DimenSi
03.08.2018
16:52:59
сейчас еще раз запробую, но кажется ошибку получал mutation...
Пропсы напрямую нельзя мутировать, только через эвенты обновлять в родители

sir
03.08.2018
16:54:47
Покажи кстать как ты меняешь массив, мне интересно, почему vue не жалуется на мутации
list.js: props: {value:Array} data(){ return {data: this.value} methods:{ load(){ fetch('url').then( r => r.json()) .then( d => { this.data.splice(0); this.data.push(...d.data.map( r => new Model(r) )) }) } //load() }

Google
sir
03.08.2018
16:55:42
Пропсы напрямую нельзя мутировать, только через эвенты обновлять в родители
это я видел, да, в доке, поэтому через data() меняю но и не хотел в app закидывать доп. логику на изменение списка файлов

И че, он так не жалуется на мутации?
так как раз правильно, ты ведь с this.data работаешь

DimenSi
03.08.2018
16:56:54
так как раз правильно, ты ведь с this.data работаешь
Ну типо ссылка на массив то одна должна быть.

sir
03.08.2018
16:57:25
вот я так понял развязывается оно

Ты же понимаешь, почему нельзя мутировать пропсы?
нет, с этим я не догнал еще почему нельзя их менять

из-за рекусивных событий от Observable ?

DimenSi
03.08.2018
16:58:36
нет, с этим я не догнал еще почему нельзя их менять
Потому, что родитель не знает, что значение поменялось, и когда родитель решит отрендерить заново шаблон, он просто перетрет твои значения.

Алексей
03.08.2018
16:59:39
А нельзя файлз воткнуть в vuex store?

sir
03.08.2018
17:00:11
и watch отслеживает

Google
sir
03.08.2018
17:00:53
А нельзя файлз воткнуть в vuex store?
vuex еще не изучал, хотел без лишних оберток обойтись А как мне кста это поможет?

DimenSi
03.08.2018
17:01:42
vuex еще не изучал, хотел без лишних оберток обойтись А как мне кста это поможет?
Ну у тебя будет глобальный стор, который имеет глобальные методы, которые ты сможешь дергать в любом компоненте, а всю логику оставить в нем

Он типо поможет решить твою проблему, но хотелось, чтоб ты понял, почему нельзя мутировать пропсы и почему изменяя в компоненте дату, у тебя не меняется ничего.

sir
03.08.2018
17:04:55
Ну у тебя будет глобальный стор, который имеет глобальные методы, которые ты сможешь дергать в любом компоненте, а всю логику оставить в нем
надо поэкспериментировать как это будет работать с uploader'ом я хотел, чтобы сторонняя компонента работала с массивом хезе как, но этот массив у нее пополняется вполне себе и я хотел его и прокидывать всюду... в общем, сейчас 2 варианта поэкспериментю 1. computed мне подсказали еще попробовать 2. vuex.store

> почему нельзя мутировать пропсы и почему изменяя в компоненте дату, у тебя не меняется ничего может есть где инфа по этому поводу, я б зачитал ее?

Алексей
03.08.2018
17:06:54
Compited кеширует, он не реактивен

sir
03.08.2018
17:07:22
Compited кеширует, он не реактивен
он будет реактивен, если на него watch еще натравить

Алексей
03.08.2018
17:07:28
Да

Kostya
03.08.2018
17:07:48
> почему нельзя мутировать пропсы и почему изменяя в компоненте дату, у тебя не меняется ничего может есть где инфа по этому поводу, я б зачитал ее?
В старой спеке Prop Mutation (deprecated) Mutating a prop locally is now considered an anti-pattern, e.g. declaring a prop and then setting this.myProp = 'someOtherValue' in the component. Due to the new rendering mechanism, whenever the parent component re-renders, the child component’s local changes will be overwritten. Most use cases of mutating a prop can be replaced by one of these options: a data property, with the prop used to set its default value a computed property

Kostya
03.08.2018
17:09:36
Именно

Alexeyhh
03.08.2018
17:19:53


Поставил сборку vuetify

Саша
03.08.2018
17:45:18
Подскажите, пожалуйста) У меня в форме есть модальное окно для вывода ошибок валидации, полученных с сервера <form> ... <alert v-if="errors"></alert> ... </form> ... data() { return { errors: null } }, methods: { submit() { this.errors = null send_form().then(() => {}, errors => { this.errors = errors }) } } Мне кажется, что я как-то некрасиво работаю с переменной errors - не реактивно, что ли) Подскажите, как нормально можно это сделать?)

Саша
03.08.2018
17:57:12
this.data.splice(0); this.data.push(...d.data.map( r => new Model(r) )) что-то такое попробуйте или посмотрите на .$set( - если я ошибаюсь, меня поправят
А, я вас понял, да, только что об этом в документации читал) Но я не совсем корректно выразился) Всё работает, окно показывается, обновляетсая - с этим всё круто) Меня больше беспокоит частое присваивание мной this.errors = null - это нормально так писать?)

Саша
03.08.2018
18:16:39
Частое ? Где частое ?
При каждом сабмите формы и в инициализации... А вообще, действительно, я глупость какую-то говорю)

DimenSi
03.08.2018
18:45:40
@CyberMerlin я знаю, что too late, но решил в доке найти где написано, что нельзя мутировать пропсы

Google
DimenSi
03.08.2018
18:45:49
https://ru.vuejs.org/v2/guide/components-props.html#%D0%9E%D0%B4%D0%BD%D0%BE%D0%BD%D0%B0%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9-%D0%BF%D0%BE%D1%82%D0%BE%D0%BA-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85

sir
03.08.2018
18:50:08
пока добирался до дома, проанализировал все вышеизложенное vuex.store или (в моем случае) простой массив так или иначе должна быть возможность менять ее в том месте, куда ее передали в том случае если мы НЕ пишем в стиле функционального программирования. вполне себе адекватно передавать объект по цепочке, чтобы каждое последующее звено вносило строго свои правки в него без необходимости анализа и доп. работы на каждом шаге по актуализации данных

vuejs заставляет писать нас в функциональном стиле. и это немного странно (для меня)

ну да ладно, сейчас надо решить свою проблемку данного случая... пока отстронюсь от чатика

Dmitriy
03.08.2018
19:46:07
Ребят, подскажите какой нибудь компоент для параллакс эффекта по типу https://dixonandmoe.com/rellax/ А то гугл не выдает нужных вариантов

Alex
03.08.2018
19:50:10
Параллакс в 2018

Вообще это надо самому делать, там тюнинг анимаций с request animation frame, слои итд что б не лагало

Dmitriy
03.08.2018
19:53:00
Вообще это надо самому делать, там тюнинг анимаций с request animation frame, слои итд что б не лагало
а есть какой то гайди или что то подобное? я и сколнялся к тому, что бы самому написать, но вдруг уже есть готовый вариант

Alex
03.08.2018
19:53:24
Ну у гугла были советы по оптимизации рендера

Но вообще нет

Надо по крупицам собирать фактически

Vlad
03.08.2018
20:06:15
Параллакс в 2018
Сделайте пожалуйста ЭФФЕКТЫ на сайте

БОГАТЫРЪ
03.08.2018
20:38:15
можно ли передать название где ключ tittle ?https://hastebin.com/puboqakeje.css

а название брать с router

title: 'Enot-Shop | :category',

Stanislav
03.08.2018
21:16:14
DimenSi
03.08.2018
21:17:35
Я так понимаю один из паттернов функционального программирования это мутации

DimenSi
03.08.2018
21:18:23
кто-то не понимает в сарказм

Google
Stanislav
03.08.2018
21:18:50
Сложна

Alexeyhh
03.08.2018
21:38:20


Претир стоит глобально

DimenSi
03.08.2018
21:39:38
а какого ты эффекта желаешь?

Admin
ERROR: S client not available

DimenSi
03.08.2018
21:40:39
преттиер не умеет в html

surprise mother fucker

Alexeyhh
03.08.2018
21:41:06
преттиер не умеет в html
В реакте умел, а тут нет?

DimenSi
03.08.2018
21:41:26
В реакте умел, а тут нет?
в реакте jsx, а тут html

тонкая грань, но зато какая

Alexeyhh
03.08.2018
21:41:34
Пздцсук

Че делать то?

DimenSi
03.08.2018
21:41:57
beatifuler или как его там

он умеет html форматировать

но я не мастер по вебштормам

Alexeyhh
03.08.2018
21:42:24
"vetur.format.defaultFormatter.html": "js-beautify-html", это ?

Google
DimenSi
03.08.2018
21:42:41
бля, не признал

да

ну я думаю дока не врет

но мне не нравится как форматирует этот jsbeatify

поэтому советую сразу красиво писать)

Alexeyhh
03.08.2018
21:44:15
Это гемморой пробельчики расставлять

DimenSi
03.08.2018
21:45:04
разве их не через табы выставляют

Alexeyhh
03.08.2018
21:45:38
Да я в общем говорю

DimenSi
03.08.2018
21:46:16
я просто не уверен, что js-beatifulier (бля не могу выговорить и написать правильно) умеет делать такого вида формат <htm long-atts data-attr2 /> => <html long-atts data-attr2 />

Alexeyhh
03.08.2018
21:47:11
Я ставил короче или через ветур или еще как-то, у меня ВСЕ РАБОТАЛО

Но я потом решил начать заново, и сутки уже не могу настроить ничего

Костя
03.08.2018
21:48:14
Привет

делал ли кто-нибудь слайдер с помощю нативной анимации vue? без npm всяких?

суть в чем - я по очереди показываю элементы из цикла

по индексу

ну и анимировано их хочу делать (делал в другом проекте анимацию через vue) но может кто еще какой способ проще предложит

Страница 3382 из 3900