Roman
нужен диапазон именно, 2мя отдельными пикерами оно сейчас и работает, но логичнее туда добавить daterange
Vl
ок
Vl
https://jsfiddle.net/api/post/library/pure/
Roman
https://jsfiddle.net/api/post/library/pure/
нажми save и потом кидай ссылку
Vl
бля.
Vl
щас
Vl
https://jsfiddle.net/upw2sgzf/2/
Roman
https://jsfiddle.net/upw2sgzf/2/
а теперь замени v-model на :value..) чтоб была полноценная связка value-change вместо v-model
Vl
Ну так в element ui скорее всего своя какая-то обертка над change
Vl
а не vue обычная
Vl
потому и не работает.
Vl
скорее всего там надо будет нормально ковыряться
Andrey
Привет, кто может подсказать по поводу архиктеры проекта с vuex?)
Victor
Товарищи, вопрос по eslint-plugin-vue Добавил себе: 'vue/script-indent': ["error", 4, {"baseIndent": 1}] и теперь мой App.vue форматируется вот так: <script> import HeaderContactsComponent from '@/components/HeaderContactsComponent'; import HeaderNavigationComponent from '@/components/HeaderNavigationComponent'; export default { name: 'app', components: { HeaderContactsComponent, HeaderNavigationComponent, }, }; </script> Кто-то сталкивался с чем-то подобным?
Victor
А если сделать 'vue/script-indent': ["error", 4, {"baseIndent": 0}] тогда он ругается, что export default сдвинут относительно <script>
Игорь
Привет, пацаны, нужен совет. Представим что у меня есть определенный компонент <cart> он может быть использован несколько раз на странице, в <Root> компоненте. Также у меня есть несколько компонентов <item> в которых есть функция addToCart. Как при этом можно сделать так, чтобы при срабатывании функции, обновлялись данные во всех <cart> Тоесть, структура такая <Root> <cart> <items> <item> <item> <item> <items> <cart> </Root> Не хочу решения, если можно, тыкните, про что гуглить.
Victor
> Не хочу решения, если можно, тыкните, про что гуглить vuex
Игорь
Оке, зашел на vuex там было про простой глобальной шины событий. Так как ивент получается очень простой, просто ID и всё, дальше я всё внутри обрабатываю. Теперь вопрос больше по логике $on(). Если я делаю 2 и более листенера `$on()`то они же не будут перезаписывать друг друга, верно?
Игорь
Просто в действительности, у меня нет нужды в полноценной Flux-библиотеке. Я думаю мне хватит и простой глобальной шины. Вот только вопрос с перезаписыванием. Если нет, то я бы довольствовался глобальной шиной
batkor
Если посмотреть давно я Вью не занимался, вижу что вы пишите вьюх вьюх, решил ща погуглить оказалось что это xtore в наксте , понятно (Прост работаю с накстом уже как год иль половину)
Roman
а почему вызов методов компонента из вне считается анти-паттерном?
Alex
Потому что — что такое компонент и вообще почему компонентный подход появился
Roman
Потому что — что такое компонент и вообще почему компонентный подход появился
компонент это класс предоставляющий определённый интерфейс наружу, в том числе и методы
Alex
Чтобы изолировать разные части приложения и избежать сайд эффектов
Игорь
а почему вызов методов компонента из вне считается анти-паттерном?
Посмотри на компонент не как на класс, а как на маленькое приложение
Roman
Чтобы изолировать разные части приложения и избежать сайд эффектов
совершенно верно, изолируются внутренности, а наружу предоставляется чётко определённый интерфейс
Roman
мой вопрос в том, почему методы рассматриваются не как часть интерфейса компонента
Roman
ведь их можно вызвать из вне по умолчанию
Alex
Это сайд эффект уже
Alex
Компонент работает не сам в зависимости от его данных
Roman
если для примера предположить что есть у нас компонент TextField, который может получить фокус, в традиционном Vue подходе нам нужно будет создать property "isFocused" и в родительском компоненте в котором используется TextField с помощью изменения некой переменной контролировать фокус компонента <template> <text-field :isFocused="txtFieldFocused"/> </template> <script> export default { data() { return { txtFieldFocused: false } }, methods: { focus() { this.txtFieldFocused = true } } } </script>  Но зачем этот лишний overhead если можно прямо вызвать метод? <template> <text-field ref="txtField"/> </template> <script> export default { methods: { focus() { this.$refs.txtField.focus() } } } </script>
Roman
это-же лишняя переменная, и если подобных свойств множество то тем более получается verbose code, а если prop прокладывается через несколько слоёв то всё это ещё менее забавно
Roman
есть этому паттерну трезвое объяснение кроме "потому-что так принято"?
Alex
Вызвать откуда-то сверху у одного из компонентов метод?
Alex
Не пробрасывая нужное через «слои»?
Alex
Вот неожиданно что-то где-то откуда-то начнёт меняться и отладка станет преувлекательным занятием
Roman
Вот неожиданно что-то где-то откуда-то начнёт меняться и отладка станет преувлекательным занятием
немного не понял, имеется ввиду "что если методы внутри компонента начнут меняться"?
Alex
Да
Alex
Вот кто-то вызывает их сверху
Alex
Откуда непонятно
Alex
Ну это ещё дойти надо будет что наверное сверху меняют неявно что-то, а не просто косяк в логике компонента
Roman
Не пробрасывая нужное через «слои»?
я скорее имел ввиду, что пробросить вызов метода намного менее verbose чем пробросить prop, хотя... может быть и наоборот
Alex
Это событие скорее нужно кинуть, а он явно его ждать и слушать
Roman
Вот кто-то вызывает их сверху
откуда API компонента вызывается это совершенно неважно, компонент отвечает только за то что происходит в его контексте
Alex
Когда надо будет дебажить некорректную работу станет важным)
Roman
Это событие скорее нужно кинуть, а он явно его ждать и слушать
я имел ввиду что если у нас prop isFocused пробрасывается скажем через 3 слоя, то в каждом из их нужно будет иметь переменную для этого пропа
Alex
Скорее всего в кучу полей будет пробрасываться какое поле выбрано в данный момент. И лишь на последнем этапе определяться это ли поле или нет
Артем
Как так то. Это же код с недавней лекции курса Климова и там это объясняется
Артем
Неужели та девушка лектор настолько плохо все доносит?
Roman
подтверди пожалуйста что я правильно понял: вместо вызовов метода лучше использовать пропы, потому-что их легче дебажить, можно зайти в Vue Dev Tools и посмотреть на состояние родителей, увидеть их состояние, т.е. пропы или data поля и по этому дебажить
Roman
а методы они скорее незаметны, грубо говоря придётся console.log'и в каждом методе focus() прописывать чтоб понять что происходит
Sergey
плюрализация с i18n нормально решается?
Vladislav
Sergey
3 склонения
Sergey
после 5 хрень
Rick
https://github.com/rtivital/proschet
Sergey
спасибо, может поможет )
Sergey
хех
Rick
решает все проблемы в связке
Sergey
весьма просто выглядит
Dmitry
ребят, а как оно с vuex и typescript работается ?
Dmitry
нормально типизируется или есть проблемы ?
Serge
В целом норм. Но сыровато. Mixins я до сих пор не понял как описывать, чтоб тслинт не матерился
Dmitry
Ну, т.е на 100 все типизацией не покроешь без костылей ?
Serge
Да. Но ts ща активно пилится. Скоро все надеюсь будет
Dmitry
так тут дело не в тс же а в vuex
Serge
Я имею ввиду поддержка ts во вью пилится
Serge
Сам vuex нормально покрывается. А вот геттеры вьюкса в компонентах уже хз какого типа
Алексей
нормально типизируется или есть проблемы ?
Ещё (редко, но есть) проблемы с плагинами для vue & vuex, у которых нет в комплекте .d.ts файлов. Их приходится иногда руками в node_modules пихать, иначе ts самописные типы для плагинов иногда просто не принимает.
Александр
Есть вопрос. Стоит ли переводить доку к ui либе? Сама либа уже с поддержкой языков
Александр
Сейчас на английском языке всё
Arstanbek
почему на поповере стоит v-if??? Надо буттону сказать, что при нажатии он реагирует на определенный попоевер. Например, в вашем куске кода должно быть на кнопке: <el-button v-popover:pip> ляляля</el-button>
Vl
Это уже я потом добавил.
Vl
Чтобы он перерисосывался при нажатии
Vl
Оно без него ведет себя по идиотски