@vuejs_ru

Страница 3711 из 3900
Дмитрий
26.09.2018
18:31:41
Естественно

DimenSi
26.09.2018
18:44:22
Всем привет. Подскажите есть у кого опыт работы с асинхронными компонентами?
У меня опыт закончился с тем, что я заменил импорт обычный на динамический

Больше ничего другого не делал.

Adel
26.09.2018
18:45:53
Тоже самое. Вы лучше спросите не то, что есть ли у кого-то опыт, а вашу (если она есть) проблему

Google
Sasha
26.09.2018
18:51:58
У меня проблема такая. Я как и полагается возвращаю промис обьект. В нем генерирую полностью компонент, шаблон с сервера, переменные тоже с сервера. Вообщем полностью создаю компонент. После этого компонент монтируется и все прекрасно работает. Затем я перехожу в другой раздел, компонент соответственно уничтожается. Все вроде хорошо. Да забыл сказать что компонент обслуживает формы для пользователя. Значит после того когда пользователь открывает другую форму, то вот не задача, компонент не генерируется заново, а просто монтируется таким как и был до этого. Так вот вопрос как заставить генерироваться компонент каждый раз.

Sasha
26.09.2018
19:08:03
Ща доеду до дома напишу

Valeriy
26.09.2018
19:09:02
заодно проясни, что такое "просто монтируется", это выполнение mounted? какого поведение то в принципе ожидаешь от закешированного компонента?

Mike
26.09.2018
19:15:37
если хочешь чтобы в дроп зоне был коллаж из принятых изображений, передавай при сбросе элемента урл в дроп зону
я доделал все компоненты) все хорошо работает) спасибо) единственный нюнас, нужно еще аватарку создать переноса, чтобы перетаскиваемый элемент оставался на месте а его клон тянулся. это уже с DOM элементом проводить манипуляции? я попробовал, но не получилось толком, реактивности нет

Valeriy
26.09.2018
19:17:59
так то исходный объект, который перетаскивают не оставляют на месте

Anton
26.09.2018
19:18:12


Mike
26.09.2018
19:19:46
Valeriy
26.09.2018
19:20:23
вопрос не понял

Google
Valeriy
26.09.2018
19:20:33
у тебя есть контейнер в котором лежит исходная картинка

как только ты ее перемещаешь, измени вид контейнера, который теперь пустой

а картинка полупрозрачная перемещается

Mike
26.09.2018
19:23:16
а картинка полупрозрачная перемещается
так а если там текст будет? или svg? вставлять клон?

Valeriy
26.09.2018
19:23:55
ну я ж не знаю какая у тебя задача

я не заказчик :))

Mike
26.09.2018
19:29:21
я не заказчик :))
ладно) покручу еще)

Yura
26.09.2018
19:49:26
Друзья, кто-то знаком с ngnix?

bulbazavr1k
26.09.2018
19:51:40
Друзья, кто-то знаком с ngnix?
Ага, норм технолоджи можно юзать )

Yura
26.09.2018
19:54:25
Ага, норм технолоджи можно юзать )
Угу. У меня проблем в стэке digital ocean + godaddy + ngnix. При заходе на сайт отображается не домен, а айпи. Шо делать?

Sasha
26.09.2018
20:18:03
заодно проясни, что такое "просто монтируется", это выполнение mounted? какого поведение то в принципе ожидаешь от закешированного компонента?
// @/components/Pages/Processes/index.vue <template> ... <component v-bind:is="currentTabComponent" :task="{}" @submited="afterSubmit"></component> или <embeded-form @submited="afterSubmit" /> ... </template> <script> import EmbededForm from '@/components/Common/EmbededForm' ... components: { EmbededForm: () => EmbededForm() // EmbededForm } </script> // @/components/Common/EmbededForm export default function () { return new Promise(async function (resolve, reject) { ... resolve(await getComponent()) }) } В getComponent() происходят запросы к серверу на получение шаблона, переменных и т.д. для формирования примерно такого обьекта: return { template: await getTemplate(), data: () => $data, methods: $methods, props: ['task'] }

И получается что он один раз его получил(исполнил промис), а потом просто монтирует (mounted) и уничтожает (destroyed), но заново промис уже не выполняет. А мне хотелось чтобы он полность переделывал его. Потому что другого способа на лету формировать компонент я не знаю.

Valeriy
26.09.2018
20:21:08
ну с виду какой-то пиздец если честно

Sasha
26.09.2018
20:24:18
Это путь к файлу из которого код

Импорт возвращает тот же промис, поэтому разницы нет

Google
Valeriy
26.09.2018
20:27:19
Sasha
26.09.2018
20:27:59
Разница в чем?

Valeriy
26.09.2018
20:28:49
насколько я понимаю, когда ты сделал просто импорт как обычно, то вебпак не засунет твой модуль в отдельный чанк и загрузит его с общим бандлом

когда ты делаешь импорт внутри функции как я выше показал, то импорт реальный произойдет только по требованию этого компонента

подгрузится отдельный js модуль

ты попробуй так и так и в закладке Network проверь

у меня вебпак автоматом рубит на чанки когда я так делаю

Sasha
26.09.2018
20:33:19
Я так понимаю что вэб пак уже не при чем. Это сам vue как то кэширует этот компонент и не перезапрашивает его вновь

Valeriy
26.09.2018
20:33:46
а вот vue как раз сам по себе не хуя не умеет

и все же допустим ты динамически загрузил компонент асинхронно, ты не пояснил что такое "перемонтируется"

Sasha
26.09.2018
20:35:02
У меня компонент отображает формы из другой системы. Форм конечно много и поэтому когда пытаюсь отобразить другую форму, он мне показываетя ту которая была до этого и новую не перезапрашивает.

Valeriy
26.09.2018
20:35:04
и что тебя там не устраивает

а где он ее должен перезапросить?

из какого места?

по какому тригеру?

Sasha
26.09.2018
20:35:58
С сервера по другому id формы

Valeriy
26.09.2018
20:36:24
это понятно что с сервера из какого метода?

mounted?

Sasha
26.09.2018
20:36:29
Запрашивает в getComponents

Google
Sasha
26.09.2018
20:36:46
Нет. Это все происходит до mount

Valeriy
26.09.2018
20:37:06
я надеюсь ты понимаешь, что импорт физически происходит только один раз

Sasha
26.09.2018
20:37:12
Я отдаю котовый обьект коипонкнта во вью

Понимаю

Valeriy
26.09.2018
20:37:39
ты в своем геткомпонентс в консоль что нибудь попробуй вывести

и посчитай сколько раз оно выполнится

Sasha
26.09.2018
20:37:51
Так вот собственно и вопрос.

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

Admin
ERROR: S client not available

Valeriy
26.09.2018
20:38:35
ну так по коду иэто и видно

вполне ожидаемое поведение

Sasha
26.09.2018
20:38:52
Согласен

Valeriy
26.09.2018
20:38:57
перезапрашивай нужные данные в методе mounted компонента

Sasha
26.09.2018
20:40:05
Если Перезапрошу шаблон, как его подставить ы компонент и так чтобы он конечно был реактивным? this.render() или как то так

Valeriy
26.09.2018
20:40:26
если ты вот это <component :is="currentTabComponent" :task="{}" @submited="afterSubmit"></component> не обернул в keep-alive то оно будет пересоздаваться каждый раз

не нужно никаких render

просто в компоненте currentTabComponent в методе mounted делай запрос к серверу или если у тебя vuex то экшин вызывай соответствующий

Sasha
26.09.2018
20:41:33
Мне по факту нужно перестроить компонент полностью, свой $data, methods, template, все другое.

В этом и вопрос.

Костя
26.09.2018
20:43:27
Какие формы открывает компонент?

Google
Sasha
26.09.2018
20:43:31
Если есть другой способ отобразить внешную форму и так чтобы она оставалась реативной и со своими методами. То подскажите как

Формы bpmn движка camunda, если знаком такой.

Edward
26.09.2018
20:44:54
Есть массив places, который состоит из обьектов, каждый из которых имеет вид: { "services": [ { "id": 2, "name": "Предварительній заказ", "translations": [ { "id": 2, "locale": "ua", "name": "Предварительній заказ" } ] } ] } Как мне отфильтровать весь массив places, оставив только те, у которых, скажем есть services с id =2?

Sasha
26.09.2018
20:45:13
Т.е. с сервера приходит html шаблон с v-model и v-on и всеми плюшками vue

Array.filter(x => x.id === 2)

Edward
26.09.2018
20:46:41
Array.filter(x => x.id === 2)
Тогда у меня в x будет хранится обьект?

Sasha
26.09.2018
20:46:49
Да

Edward
26.09.2018
20:47:25
Array.filter(x => x.id === 2)
Тут наверное правильнее будет так: Array.filter(x => x.services.id === 2)

Sasha
26.09.2018
20:47:37
Точнее элемент массива, а что это будет не важно

Edward
26.09.2018
20:47:44
Да
Но даже это не так, ведь services - тоже массив из N обьектов

Sasha
26.09.2018
20:47:53
Если конкретно то да

Я подсказал идею

Edward
26.09.2018
20:48:13
Я подсказал идею
Понял, спасибо )

Sasha
26.09.2018
20:48:19
Ок

Edward
26.09.2018
20:58:12
Ок
Взгляни, если не сложно. Это работать не будет? this.$root.$data.places.filter(place => { if(place[this.filter_type].length > 0) { console.log(place[this.filter_type][0].id == 2); place[this.filter_type][0].id == 2; } })

Sasha
26.09.2018
21:00:42
Не будет. Тебе в таком случае надо делать обязательно return и все это куда то присваивать. Если можешь сделай скрин, а то разметка поплыла

Edward
26.09.2018
21:01:18
а в чём необходимость лезть в корневой элемент?
У меня есть главный компонент, там хранится массив places. Я делаю компонент фильтр, хочу чтобы при клике на него, он лез в массив places родителя и там фильтровал данные



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