Anonymous
Привествую, подвернулся небольшой таск на vue, есть пара вопросов
Alexander
Anonymous
как мне сделать несколько компонентов на одной странице?
Anonymous
я пробовал создавать два инстанца new Vue, но он не видит методы второго
Alexey
мапишь поля со сторы, вместо v-model пишешь :value с полем и на @input вешаешь обработчик с мутацией для изменения твоего поля
спасибо, щас буду пытаться, просто там не просто поле, там объект. Хотя можно сказать разницы нет
Anonymous
как мне сделать несколько компонентов на одной странице?
Слишком общий вопрос, что конкретно интересует?
Anonymous
все делаю тупо в теге script на странице
Alexander
электрон?
Электрон походу четкая штука, но я с ним не работал. у нас еще проще, все в браузере. под капот никто смотреть все равно не будет)
Anonymous
эм?
Roman
спасибо, щас буду пытаться, просто там не просто поле, там объект. Хотя можно сказать разницы нет
да, разницы не будет, просто obj.path.to.prop и на @change обработчик с мутацией
Anonymous
<component1/> <component2/>
ну кроме этого еще кучу всяких действий нужно сделать)
Anonymous
я написал выше я делаю все в теге скрипт
Alexey
ну кроме этого еще кучу всяких действий нужно сделать)
конечно, просто пока не понятно о чём он
Anonymous
сам електрон не нравится?
Не, его реализация под винду
Arthur
шото я запутался(
input( :value="someComp", @input="setComp" ) input( v-model="otherComp" ) computed: { someComp () { return this.$store.state.someComp }, otherComp: { get: function () { return this.$store.state.otherComp}, set: function (value) { this.$store.commit('SET_OTHER_COMP', value) } } }, methods: { setComp (val) { this.$store.commit('SET_SOME_COMP', val) } }
Alexander
Не, его реализация под винду
понятно, тогда хорошо что не приходилось пока) а на счет вашего сообщения про реакт и ангуляр - такая же реакция была когда только читал про все фреймворки) а сейчас на практике убедился что не просто так его хайпят многие)
Arthur
Блин! Благодарю!
оба варианта надеюсь все понятно
Alexey
да, я понял, спасибо ещё раз
Anonymous
конечно, просто пока не понятно о чём он
есть например я не знаю как тут это называется открыл тутор только 20 минут назад наверное компонент, в нем есть атрибут el через который можно связать потом директивой шаблон и какие-то данные
Anonymous
вот если у меня например сначала список из апи получается и генерятся урлы, потом при клике на урлы мне надо подгрузить детали сущности
Alexander
угу, я начал с реакта, не смог разобраться в нем., попробовал Vue и все сразу пошло.
да, во вью порог вхождения низкий и не нужно мозги наизнанку выворачивать как в реакте) я даже не пробовал реакт, мне сам подход JSX вообще не импонирует, особенно после того что я видел на jQuery) ладненько, порадовались что вью крут и надо работать)
Anonymous
а в одном скрипте делать это обязательное условие? Просто мне кажется проще делать через vue-cli с готовой сборкой
мне хватает emberjs и react я вообще бекенд типо разработчик, вью мне уже реально не охота педалить, тупо надо сделать по быстрому
Alexey
мне хватает emberjs и react я вообще бекенд типо разработчик, вью мне уже реально не охота педалить, тупо надо сделать по быстрому
понятно. Тогда как в мануале, вот так компоненту объявляешь Vue.component('my-component', { template: '<div>Пользовательский компонент!</div>' }) А в основном инстантсе делаешь components: {my-component} Потом в блоке, который объявил в el вставляешь эти компоненты тэгами <my-component/>
Anonymous
идея такая есть страница <div id="risks-list" v-for="for risk in risks"><a href="#" v-onclck="loadDetails">{{risk.title}}</a></div> <div id="risk-details"></div>
Anonymous
сейчас выгружается список рисков и апдейтит див линками
Anonymous
вот как мне теперь сделать так чтобы апдейтилось и в детали
Anonymous
потому что элемент-то я могу задать только один и связать директивой
Anonymous
я пробовал еще один объект vue создать, но чот так работать оно не хочет
Anonymous
понятно. Тогда как в мануале, вот так компоненту объявляешь Vue.component('my-component', { template: '<div>Пользовательский компонент!</div>' }) А в основном инстантсе делаешь components: {my-component} Потом в блоке, который объявил в el вставляешь эти компоненты тэгами <my-component/>
А если в другом файле находится компонент, то сначала импортируешь его, а потом в template: 'экспортируемый компонент' Пишешь название экспортируемого компонента, а в теплейте указываешь <component-1></component-2>
Alexey
потому что элемент-то я могу задать только один и связать директивой
не, скорее всего можно всё сделать в одном, просто трудно так понять. Можешь код накидвать поточнее в jsfiddle например?
Лариса .•۶•*º
Плиз : делаю build выдает Tip: built files are meant to be served over an HTTP server. Opening index.html over file:// won't work.
Anonymous
да не нужны мне компоненты
Anonymous
не хочу я ничего собирать
Anonymous
тупо в <script> чтобы все было на той же странице
Anonymous
ручная сборка
Alexey
да не нужны мне компоненты
не, конмпоненты можно объявить в html прям
Anonymous
ага
Anonymous
да не нужны мне компоненты
Ты или крестик сними, или штаны надень
Alexey
ручная сборка
можно так сделать и всё равно компоненты замутить
Anonymous
ща попробую
Alexander
Ты или крестик сними, или штаны надень
заглянул в чат и очень здорово орнул с этого выражения)
Tom
Ваши идеи применения portals?
Vladimir
Alexey
input( :value="someComp", @input="setComp" ) input( v-model="otherComp" ) computed: { someComp () { return this.$store.state.someComp }, otherComp: { get: function () { return this.$store.state.otherComp}, set: function (value) { this.$store.commit('SET_OTHER_COMP', value) } } }, methods: { setComp (val) { this.$store.commit('SET_SOME_COMP', val) } }
как бороться с тем, что вычисляемое свойство возвращает undefined, пока экшн не отработал. В консоль уже выволилась куча ошибок, а в девтулзах данные есть.
Arthur
Экшн на что не отработал?
Alexey
Экшн на что не отработал?
Экшн грузит аяксом данные. Пока данные не пришли, вычисляемое уже из стора берёт пустой объект и валятся ошибки в консоль
Alexey
переменная loading для отслеживания загрузки, к примеру
на компоненте v-if="loading" не будет давать компоненте создаться?
Arthur
https://ru.vuejs.org/v2/guide/instance.html
Andrew
ну напиши мидлвару которая будет пока загрузка допустим показывать спинер
Arthur
Можешь загрузки повесить до инициализации данных
Andrew
пока промисс выполняется
Roman
Можешь загрузки повесить до инициализации данных
не факт же, что к тому моменту данные догрузятся все-таки
Arthur
Да не факт
Arthur
Это в дополнение к переменной на показ
Alexey
beforeCreate() не помогло
Arthur
Можно ещё повесить метод на маунтед с промисами которые будут данные стона писать в дату
Arthur
Стора
Alexey
только эта компонента, в которой это было, вызывает другую компоненту, в которой эти ошибки и появляются
Andrew
https://youtu.be/ZEYFrY5ztnE?t=2420
Andrew
вот тебе с привязкой ко времени какраз твой случай
Alexey
Я уж не знаю что я наворотил, но v-if="loading" у меня и был
Alexey
нет, вложенная компонента вываливает ошибки, там явно идет обращение к данным, которые были пустыми. А когда я смотрю в девтулз, данные уже на месте
Alexey
пздц
Andrew
ну так тогда прочитак что такое промисы
Andrew
и что такое асинхное выполнение в js
Andrew
ну скинь код того елемента который у тебя там чтото рано получает