Евгений
у меня форма генерируется динамически из разных блоков (Цитата, Текст, Галерея...)
Евгений
то есть можно добавлять блок за блоком в любом порядке в любых количествах
Евгений
сейчас у меня все шаблоны хранятся в html и сервер рендерит и возвращает нужный шаблон по имени блока
Евгений
не пойму как сделать это на стороне vue
Евгений
тем более в форме должны использоваться данные с сервера
Евгений
например есть блок "Заведение", где в форме используется инпут селект с выбором заведения из базы
Евгений
или типа каждый блок делать vue компонентом?
Al
фига вы матерые, я только про рантайм и знаю 😆
Michel
@ezhkov так собственно https://vuejs.org/v2/guide/components.html
Michel
Vue.component('my-component', {
template: '<div>A custom component!</div>'
})
Michel
это оно и есть
Denis
Эммм... Выглядит костыльно))
Michel
можно же в любом месте кода сказать Vue.component. Там только потом надо его как динамический прокидывать
Michel
@ezhkov Компиляция шаблонов в рантайме - само по себе костыль
Denis
Ну в принципе, да. Просто душа не принимает разметку в JS
Al
это не разметка, там можно "обычный" хтмл
Denis
Но если асинхронно тянуть HTML, то вроде и не в JS разметка уже
Michel
ну, в случае с @perin например разметка с сервера прилетала бы, так что в js-коде ее не видно. Но все это, повторюсь, сорта костылей
Oleksandr
Denis
.vue гораздо более изящная концепция
Oleksandr
Или же возвращайте заново html с ошибками
Al
хтмл внутри хтмл:) на то и рантайм компиляция. Vue видит в хтмл коде в своем указанном элементе свои теги и компилирует
Arstanbek
Евгений
Oleksandr
Вы оперируете шаблонами
Oleksandr
Потому и работайте с ними
Евгений
ну вот я и думаю может пока не поздно переделать на vue компоненты чтоб не шаблонами оперировать
Евгений
только я в vue компонентах еще не шарю)
Michel
@perin да, так будет правильнее
Al
Michel
вам для полноты картины скорее всего не хватает знания о динамических компонентах - как раз для того, чтобы рендерить формочку по ее конфигу, который может, например, прилетать с сервера
Denis
Michel
https://coligo.io/dynamic-components-in-vuejs/
Al
ну так и где тут хтмл в жс?
Denis
ну так и где тут хтмл в жс?
Я говорю про случай, когда создают компоненты, где в поле template пишут не ID шаблона, а прям HTML-разметку
Denis
Как в примере из документации
Al
я наверн чего-то не понимаю, но что мешает подставить нужный ид на стороне сервера?
Al
или тут вообще случай когда шаблоны не возможны?
Denis
Разговор идет о рантайм-компиляции компонентов.
Denis
Грубо говоря, нажали кнопку на странице, у вас сгенерировался новый компонент
Евгений
Vue.component('my-component', {
template: "<div v-text='token'></div>",
props: ['token'],
})
я хочу вывести token из data Vue в компонент, но чот не выводится... как его пробрасывать в компонент?
Denis
Ладно, проехали, решение было предложено
Al
Al
если конечно есть data.token
Евгений
во, благодарочка
Евгений
дада, есть)
Farid
Valerii
Привет!
Знаете какой нибудь колор пикер для вью помимо https://github.com/xiaokaike/vue-color ?
Margarita
Alex
Alex
Но лучше так стараться не делать
Denis
Евгений
нет,чтото не то с компонентом у меня
Евгений
Vue.component('my-component', {
template: "<div v-text='token'></div>",
props: ['token'],
})
<my-component token="token"></my-component>
Евгений
выводит просто текст "token"
Евгений
а, всё
Евгений
<my-component v-bind:token="token"></my-component>
Vladimir
Евгений
ага, я пока просто разбираюсь
Евгений
спасибо
Евгений
<script type="text/x-template" id="checkbox-template">
<select class="form-control">
<option v-for="org in orgs" :value="org.id">
@{{ org.name }}
</option>
</select>
</script>
<script type="text/javascript">
Vue.component('test', {
template: '#checkbox-template',
data() {
return {
orgs: ......,
}
},
});
.....
</script>
Евгений
сделал тестовый компонент, получаю список организаций и вывожу их в селект, всё работает норм
Евгений
но самое главное теперь, как мне этот компонент вставлять динамически в шаблон?
Евгений
и как связывать данные из компонента с моделью в vue data ...
Danylo
Гайс, такой вопрос
Есть iScroll компонента, которая делает красивый скролл
https://dafrok.github.io/vue-iscroll-view/
Как правильно сделать роутер что бы на каждой странице был этот скрол?
<iscroll-view ref="iscroll" :scrollerStyle="{color: 'red'}" class="scroll-view">
<transition mode="out-in" v-on:enter="animEnter" v-on:leave="animLeave">
<router-view></router-view>
</transition>
</iscroll-view>
Если делать так, то после каждого перехода нужно вызывать метод this.$refs.iscroll.refresh() для того что бы iscroll пересчитал высоту контента внутри себя. Но я не могу это сделать т.к. внутри новой страницы нет this.$refs.iscroll. Если делать так, то как мне достучатся до этого рефреша? Прокидывать его внутрь компонент?
Oleksandr
#whois работаю php разработчиком в Киеве. Интересен сам Vue. Кинули ссыль в другом чате
Alex
Неужели эпоха moment.js закончилась
Alex
Luxon, современная замена moment.js для работы с датами и временем: иммутабельная, с простым API и нативной поддержкой локализации — http://moment.github.io/luxon/
1337
....
1337
я так понимаю
1337
рофлить про жс можно бесконечно
1337
ладно, пойду писать новую библиотеку для работы со временем, на основе Luxon
Alex
зачем новую, переписывать старую с момента
Alex
ctrl-h и погнали
Anonymous
Alex
пока не знаю :) подробно ещё не смотрел