Метод триггера в родственном компоненте Vue JS

снова нужна твоя помощь. Вот моя ситуация. VueJS2 (проект vue-cli) нет Vuex. У меня есть компонент parent, child1 и child2. child1 - это форма, которая получает данные из child2 (которая представляет собой таблицу). После установки флажка в строке таблицы в child2, мы заполняем форму в child1, это делается с помощью передачи event через parent (рисунок 2). child1 имеет кнопку, а reset method (см. Рисунок 1) для очистки полей. Моя задача: когда я снимаю флажок в строке таблицы child2, форма в child1 должна быть очищена. Как мне это сделать, в частности, как получить доступ к reset method в child1 из child2 и в основном использовать этот метод из child2. Я знаю, как передавать данные от ребенка к ребенку, но не могу понять, как иметь возможность просто манипулировать данными ребенка от его брата или сестры. Пожалуйста помоги! Заранее спасибо!

Метод триггера в родственном компоненте Vue JSМетод триггера в родственном компоненте Vue JS

Можете немного уточнить? Также поможет пример кода. Вы пытаетесь передать данные от ребенка другому ребенку? Или, может быть, вы хотите передать событие от одного ребенка и прослушать его от другого ребенка.

samayo 29.03.2018 22:24

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

Ohgodwhy 29.03.2018 22:26

@samayo в данный момент не имеет доступа к коду. Что ж, я знаю, как передать данные child-child, но мне нужно использовать метод reset, который уже существует в child1 (рис.), Ища способ запустить его из child2 без передачи каких-либо данных, просто чтобы иметь возможность очистить поля в child1 от child2. прямо сейчас этот метод reset очищает поля, но только когда я нажимаю кнопку clear, которая является частью child1. Извините, если это слишком запутанно

EFFG 29.03.2018 22:29

@Ohgodwhy have that be responsive to the other child component., кто мне это делает. Я запутался, это не должно быть так сложно

EFFG 29.03.2018 22:36

Другими словами, как я могу очистить поля формы child1 из child2, сняв флажок или нажав кнопку в child2

EFFG 29.03.2018 22:43
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
5
1 243
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если я правильно понимаю, у вас есть 2 дочерних компонента, и вы хотите сказать child1, чтобы он выполнил метод (сброс) из вашего компонента child2 без передачи каких-либо реквизитов.

Что ж, в этом случае ваш выбор ограничен использованием шины событий.

Посмотрите этот пример. Когда вы нажимаете кнопку в CompB, он выполняет методы внутри другого дочернего компонента: CompA

var Bus = new Vue()

var compA = {
  data: () => ({ name: 'Primary' }), 
  
  template: `<p> Comp A is: {{name}}</p>`,
  
  methods: {
    reset () {
      this.name = 'RESETED'
    }
  },
  
  created () {
   let self = this;
    Bus.$on('resetA', function (payload) {
      self.reset()
    })
  }
}

var compB = {
  template: `<p> Comp B <button @click = "resetCompA"> Clear A </button> </p>`,
  methods: {
    resetCompA () {
      Bus.$emit('resetA')
    }
  }
}

new Vue({
  el: '#app',
  components: {
   'comp-a'  : compA, 
   'comp-b' : compB
  }
})
<script src = "https://unpkg.com/[email protected]/dist/vue.js"></script>
<div id = "app">
  <comp-a></comp-a>
  <comp-b></comp-b>
</div>

не могу поблагодарить вас! делает то, что мне нужно! Ваше здоровье!

EFFG 30.03.2018 08:47

Другие вопросы по теме