Я могу сделать это двумя способами.
1 - Global EventBus
Я создам eventBus и регистрирую события в нем из любого файла и слушаю его где угодно
import { EventBus } from '@/eventBus'
// simply import it to component which need listen the event
//Register Event where you have your methods - like In your COMP_B_TWO
EventBus.$on('validate', () => { this.validate() })
// Emit event from another component
EventBus.$emit('validate')// Like directly from your COMP_A_TWO
Чтобы узнать, как создать eventBus, следуйте этому - Global Event Bus Vue
Другой способ, которым я могу думать, это
2 - Ссылка
Добавить ссылку на COMP_A_ONE
как
<COMP_A_ONE ref = "one" />
Затем добавить ссылку на COMP_B_ONE
<COMP_B_ONE ref = "b-one" />
Теперь, когда вы запускаете submit
с main component
выполнить его -
this.$on('submit', () => {
this.$refs.one['b-one'].validate()
})
Это полностью зависит от того, куда ты хочешь идти -
- Если вам нужно позвонить
validate
для многих других мест, я бы предложил выбрать EventBus
- Вам нужен только текущий компонент, используйте
Refs