«nativeOn» против «on» в функции рендеринга и JSX - PullRequest
0 голосов
/ 01 июля 2019

В документации Vue на https://vuejs.org/v2/guide/render-function.html#The-Data-Object-In-Depth есть объяснения для «on» и «nativeOn»:

// Event handlers are nested under `on`, though
  // modifiers such as in `v-on:keyup.enter` are not
  // supported. You'll have to manually check the
  // keyCode in the handler instead.
  on: {
    click: this.clickHandler
  },
  // For components only. Allows you to listen to
  // native events, rather than events emitted from
  // the component using `vm.$emit`.
  nativeOn: {
    click: this.nativeClickHandler
  },

Мы пытаемся прослушать событие «input» из пользовательского компонента, который мы создали. Мы заметили, что событие не было обнаружено в свойстве on, поэтому мы попробовали nativeOn и с удивлением обнаружили, что это работает. Мы были удивлены, потому что документы говорят nativeOn:

Позволяет слушать // нативные события, а не события // компонент, использующий vm. $ emit

В этом случае мы используем событие, генерируемое (настраиваемым) компонентом с использованием vm. $ Emit.

Вот фрагмент нашего кода, демонстрирующий вышесказанное:

on: {
    input: (event) => {
        console.log('hi'); // We did not receive "hi" in the console
    }
},
nativeOn: {
    input: (event) => {
        console.log('hi2'); // We did receive "hi2" in the console
    }

Любое разъяснение о том, почему нам нужно nativeOn для прослушивания «входных» событий из пользовательского компонента, или о том, когда использовать nativeOn и on, и различия в них будут наиболее цениться. Заранее спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...