@vuejs_ru

Страница 1911 из 3900
Roman
21.01.2018
16:47:29
ведь их можно вызвать из вне по умолчанию

Alex
21.01.2018
16:48:08
Это сайд эффект уже

Компонент работает не сам в зависимости от его данных

Roman
21.01.2018
16:53:42
если для примера предположить что есть у нас компонент 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>

Google
Roman
21.01.2018
16:55:17
это-же лишняя переменная, и если подобных свойств множество то тем более получается verbose code, а если prop прокладывается через несколько слоёв то всё это ещё менее забавно

есть этому паттерну трезвое объяснение кроме "потому-что так принято"?

Alex
21.01.2018
17:01:04
Вызвать откуда-то сверху у одного из компонентов метод?

Не пробрасывая нужное через «слои»?

Вот неожиданно что-то где-то откуда-то начнёт меняться и отладка станет преувлекательным занятием

Roman
21.01.2018
17:19:16
Вот неожиданно что-то где-то откуда-то начнёт меняться и отладка станет преувлекательным занятием
немного не понял, имеется ввиду "что если методы внутри компонента начнут меняться"?

Alex
21.01.2018
17:19:48
Да

Вот кто-то вызывает их сверху

Откуда непонятно

Ну это ещё дойти надо будет что наверное сверху меняют неявно что-то, а не просто косяк в логике компонента

Roman
21.01.2018
17:20:41
Не пробрасывая нужное через «слои»?
я скорее имел ввиду, что пробросить вызов метода намного менее verbose чем пробросить prop, хотя... может быть и наоборот

Alex
21.01.2018
17:21:31
Это событие скорее нужно кинуть, а он явно его ждать и слушать

Roman
21.01.2018
17:21:56
Вот кто-то вызывает их сверху
откуда API компонента вызывается это совершенно неважно, компонент отвечает только за то что происходит в его контексте

Google
Alex
21.01.2018
17:22:39
Когда надо будет дебажить некорректную работу станет важным)

Roman
21.01.2018
17:23:18
Это событие скорее нужно кинуть, а он явно его ждать и слушать
я имел ввиду что если у нас prop isFocused пробрасывается скажем через 3 слоя, то в каждом из их нужно будет иметь переменную для этого пропа

Alex
21.01.2018
17:24:09
Скорее всего в кучу полей будет пробрасываться какое поле выбрано в данный момент. И лишь на последнем этапе определяться это ли поле или нет

Артем
21.01.2018
17:27:17
Как так то. Это же код с недавней лекции курса Климова и там это объясняется

Неужели та девушка лектор настолько плохо все доносит?

Roman
21.01.2018
17:28:23
подтверди пожалуйста что я правильно понял: вместо вызовов метода лучше использовать пропы, потому-что их легче дебажить, можно зайти в Vue Dev Tools и посмотреть на состояние родителей, увидеть их состояние, т.е. пропы или data поля и по этому дебажить

а методы они скорее незаметны, грубо говоря придётся console.log'и в каждом методе focus() прописывать чтоб понять что происходит

Sergey
21.01.2018
17:40:22
плюрализация с i18n нормально решается?

Vladislav
21.01.2018
17:44:34
плюрализация с i18n нормально решается?
Со склонениями заебешься

Sergey
21.01.2018
17:44:43
3 склонения

после 5 хрень

Rick
21.01.2018
17:45:36
https://github.com/rtivital/proschet

Sergey
21.01.2018
17:46:02
спасибо, может поможет )

хех

Rick
21.01.2018
17:46:35
решает все проблемы в связке

Sergey
21.01.2018
17:46:39
весьма просто выглядит

Dmitry
21.01.2018
17:50:31
ребят, а как оно с vuex и typescript работается ?

нормально типизируется или есть проблемы ?

Google
Serge
21.01.2018
17:52:03
В целом норм. Но сыровато. Mixins я до сих пор не понял как описывать, чтоб тслинт не матерился

Dmitry
21.01.2018
17:52:28
Ну, т.е на 100 все типизацией не покроешь без костылей ?

Serge
21.01.2018
17:53:52
Да. Но ts ща активно пилится. Скоро все надеюсь будет

Dmitry
21.01.2018
17:54:16
так тут дело не в тс же а в vuex

Serge
21.01.2018
17:55:38
Я имею ввиду поддержка ts во вью пилится

Сам vuex нормально покрывается. А вот геттеры вьюкса в компонентах уже хз какого типа

Алексей
21.01.2018
18:05:21
нормально типизируется или есть проблемы ?
Ещё (редко, но есть) проблемы с плагинами для vue & vuex, у которых нет в комплекте .d.ts файлов. Их приходится иногда руками в node_modules пихать, иначе ts самописные типы для плагинов иногда просто не принимает.

Александр
21.01.2018
18:06:13
Есть вопрос. Стоит ли переводить доку к ui либе? Сама либа уже с поддержкой языков

Сейчас на английском языке всё

Arstanbek
21.01.2018
18:48:49
почему на поповере стоит v-if??? Надо буттону сказать, что при нажатии он реагирует на определенный попоевер. Например, в вашем куске кода должно быть на кнопке: <el-button v-popover:pip> ляляля</el-button>

Vladislav
21.01.2018
18:49:19
Это уже я потом добавил.

Чтобы он перерисосывался при нажатии

Оно без него ведет себя по идиотски

Arstanbek
21.01.2018
18:50:29
или: $refs.pip.show() $refs.pip.hide() Но не v-if 'ом прятать и показывать

Andrey
21.01.2018
18:50:44
знает ли кто-то в чем может быть причина, что vue-chartjs не отображает график, когда берет данные из Vuex? я предполагаю, что он пытается его рендерить раньше, чем данные появляются в state

на это как-то можно повлиять?

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

Arstanbek
21.01.2018
18:52:34
Чтобы он перерисосывался при нажатии
у вас что-то не так. уберите костыль и по ищите причину )

Google
Arstanbek
21.01.2018
18:53:36
точнее, чарт запускать только после того, как пришли данные, в success'е

Andrey
21.01.2018
18:55:33
success это Vuex ведь имеется в виду?

Arstanbek
21.01.2018
18:55:47
вы чарт чем кормите?

результатом http запроса?

Andrey
21.01.2018
18:56:21
не совсем

Arstanbek
21.01.2018
18:56:29
откуда данные берете?

Andrey
21.01.2018
18:56:38
у меня подтягиваются только date и labels

остальное для графика написано в самом компоненте

Admin
ERROR: S client not available

Arstanbek
21.01.2018
18:56:55
откуда подтягиваются?

Andrey
21.01.2018
18:57:08
через запрос

Arstanbek
21.01.2018
18:57:18
вот. http запрос, значит

Andrey
21.01.2018
18:57:29
наверное, я не совсем понял сначала

Arstanbek
21.01.2018
18:57:43
хорошо. вы новичок. тогда слушайте

...

компоненты уже есть на странице. данные приходят откуда-то. Она должны быть запрошены. Я у яваскрипта есть свойство выполнятся асинхронно. Запросы (http, это get, post) относятся к ним. Чтобы поймать момент прихода данных, и только потом запустить компонент на отрисовку, надо описать метод success в большинстве случаев. Например, есть jquery.. Там post запрос делается следующим образом: $.ajax({ method:'POST', data:{}, success(json){ me.отрисовать_мой_компонент(json)// в этот момент пришли данные. },error(e){//а тут обраобтчик ошибок} }) а axios'а чуть по другому. Вам надо непременно почитать об этом.

через запрос
покажите код, который делает запрос?

Andrey
21.01.2018
19:06:15




Google
Arstanbek
21.01.2018
19:06:47
покажите, как берувтся данные?

вот в этом куске кода, сразу после this.$store.dispatch(... допишите следующей строкой про renderChart

вот этот метод запроса как раз таки который "немного другой"

Andrey
21.01.2018
19:12:10
Ребят, подскажите бестпрактик для организации некоторого канвас модуля, методы которого вызывается в разных компонентах и vuex сторе. Все что мне приходит на ум это сделать его глобальным, что как то так себе. ?

Andrey
21.01.2018
19:13:58
хоть и данные есть в state

Arstanbek
21.01.2018
19:14:47
хоть и данные есть в state
на момент проверки - данные есть. На момент когда чарт должен отрисоваться - их нет

Andrey
21.01.2018
19:16:07
на момент проверки - данные есть. На момент когда чарт должен отрисоваться - их нет
наверное так но как мне сделать так, чтобы они были до того, как чарт отрисуется?

Arstanbek
21.01.2018
19:17:23
я же тебе сказал. 1. скопируй полностью строку начинающуюся на... this.renderChart(блаблабла... 2. Удали её от туда

а потом

вот сюда вставьскопированную строку ниже строки начинающейся на this.$store.dispatch(///

понятно теперь?

Andrey
21.01.2018
19:18:37


Arstanbek
21.01.2018
19:18:46
дддяяяя

Andrey
21.01.2018
19:18:56
так и говорю, что не отображается все равно

Arstanbek
21.01.2018
19:19:05
аа, стоп

найди метод fillChart

он должен быть в модуле user.js

Andrey
21.01.2018
19:20:41
так fillChart это просто action

Arstanbek
21.01.2018
19:20:41
там должно быть что-то типа: ... fillChart ({commit}, data) {... ...

вот туда нужно передать вызыватель чарта в виде колбек функции

внутри акшны же делается запрос?

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