Я искал информацию и нашел способ генерировать события из дочерних компонентов, которые затем можно прослушать в родительских компонентах. Есть ли способ вызвать дочерний метод из родительского компонента?
Есть ли способ вызвать компонентный метод из родителя в VueJS?
Ответ 1
Yup, просто найдите свой компонент в массиве children или захватите его атрибутом ref и вызовите метод:) ref doc
позволяет предположить, что ваш дочерний компонент имеет метод x. Согласно документации:
<div id="parent">
<user-profile ref="profile"></user-profile>
</div>
var child = this.$refs.profile;
child.x();
Ответ 2
Я думаю, что хороший шаблон для этого - это излучение события из родительского компонента и прослушивание его в дочернем компоненте, используя Event Bus.
Это будет:
в main.js
export const bus = new Vue()
в Parent.vue:
import {bus} from 'path/to/main'
// Where you wanna call the child method:
bus.$emit('customEventName', optionalParameter)
в Child.vue:
import {bus} from 'path/to/main'
// Add this to the mounted() method in your component options object:
bus.$on('customEventName', this.methodYouWannaCall)