Skip to content

Instantly share code, notes, and snippets.

@zmts
Last active May 10, 2022 06:38
Show Gist options
  • Save zmts/7769176cf129057c1cf01b9b46e60d61 to your computer and use it in GitHub Desktop.
Save zmts/7769176cf129057c1cf01b9b46e60d61 to your computer and use it in GitHub Desktop.
Передать ивент из родителя в потомок (Vue.js)

Передать ивент из родителя в потомок (Vue.js)

В потомке подписываемся на некое событие через $parent.$on('some-event'). В родителе емитим это событие.

<div id="app">
  <my-component></my-component>
  <button @click="click">Click</button>  
</div>
var Child = {
  template: '<div>{{value}}</div>',
  data: function () {
    return {
      value: 0
    };
  },
  methods: {
    setValue: function(value) {
        this.value = value;
    }
  },
  created: function() {
    this.$parent.$on('update', this.setValue);
  }
}

new Vue({
  el: '#app',
  components: {
    'my-component': Child
  },
  methods: {
    click: function() {
        this.$emit('update', 7);
    }
  }
})
@dalph
Copy link

dalph commented Apr 4, 2020

спасибо, работает!

@zmts
Copy link
Author

zmts commented Apr 4, 2020

@dalph Лучше передавать в child некий prop и отслеживать его через watch

@dhonehi
Copy link

dhonehi commented Aug 28, 2020

Помогло, спасибо!

@dalph
Copy link

dalph commented Aug 29, 2020

@dalph Лучше передавать в child некий prop и отслеживать его через watch

да, теперь так и делаю.
в целом и в watch отпала необходимость.

@Senior-Pomidor
Copy link

Спасибо, работает! Очень помогло.

@NazarovAsadbek
Copy link

А

@dalph Лучше передавать в child некий prop и отслеживать его через watch

да, теперь так и делаю.
в целом и в watch отпала необходимость.

Какой способ лучше всего использовать в vue 2 не подскажите?))

@alekseypetrenko
Copy link

А

@dalph Лучше передавать в child некий prop и отслеживать его через watch

да, теперь так и делаю.
в целом и в watch отпала необходимость.

Какой способ лучше всего использовать в vue 2 не подскажите?))

Конечно prop. То что в примере выше - дичь полнейшая

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment