Создаю компонент диалога.
Компонент vue, как обычно, состоит из <template> <script> <style>
.
От компонента требуется простой апи executeDialog(anyButtonClickedCallback)
.
Я могу вызвать любой метод из секции methods, но не понятно на каком экземпляре он будет вызван, да и скорее всего так делать неправильно.
Я прочитал про общение с компонентами, уяснил одно - если хотим передать информацию компоненту - делаем это через props, если хотим обратную связь от компонента, то делаем это через события, на которые мы подписываемся в parent-компоненте. Это мне подходит, но не в полной мере.
Собственно сейчас секция <script>
у компонента выглядит примерно так:
export default {
components: {...},
data() {
return {
position: {...}
}
},
props: {
width: {type: String, required: true},
header: {type: String, required: true},
buttons: {...}
},
methods: {
drag(event){...},
dlialogButtonClick(buttonKey){
this.$emit("dialog-button-click", buttonKey);
}
},
computed: {...}
}
В таком случае, например, видимостью диалога приходится управлять вручную. Это переключение видимости, обработка событий требует выделения этой логики в отдельные функции родителя. Хотелось бы это всё инкапсулировать в самом компоненте.
Как такие проблемы принято решать во vue? Какие идеи, подходы?
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Необходимо реализовать алгоритм проверяющий наличие подстроки в массиве строк и возвращающая номера элементов массива, в которых встретилась...
В родительском компоненте есть такая функция
Есть дата: moment()format('L') , как вернуть её обратно к moment? Если есть другие варианты, чтобы прибавить дни, они тоже подойдут, но пожалуйста, без парсинга...