Vue.js двусторонняя привязка данных с v-моделью

Просто поместите это в свой viewDidLoad:

UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback;
AudioSessionSetProperty (kAudioSessionProperty_AudioCategory,
                         sizeof(sessionCategory), &sessionCategory);
0
задан tyteen4a03 7 March 2019 в 05:29
поделиться

2 ответа

v-model - это просто абстракция поверх однонаправленного потока данных. По сути, ваш пользовательский дочерний компонент должен сделать две вещи:

  • Принять реквизит с именем value.
  • Создать событие с именем input и новыми данными.

Таким образом, ваш дочерний компонент будет использоваться следующим образом:

<child-component :value="myVal" @input="myVal = $event"></child-component>

В приведенном выше коде $event - это специальная конструкция шаблона, которая содержит данные, которые дочерний компонент выпустил как часть полезная нагрузка события. Событие @input просто обновляет значение myVal , которое снова будет передано дочернему компоненту через привязку :value и, таким образом, односторонний поток данных.

Теперь этот шаблон повторяется так много раз, что Vue.js предоставил простой v-model синтаксис-сахар, который можно использовать вместо приведенного выше кода.

<child-component v-model="myVal"></child-component>

Также, если по какой-то причине вы не хотите использовать value или input в качестве своей опоры и события, вы можете изменить их, используя атрибут model. Вот дополнительная документация для этого .

Обратите внимание, что если вы используете Redux / Vuex, тогда избегайте использования v-model. Для вложенных данных есть хороший шанс, что вы попадете в крайние ситуации.

0
ответ дан Harshal Patil 7 March 2019 в 05:29
поделиться

Невозможно использовать v-model для двусторонней привязки данных, так как вы хотите изменить поведение по умолчанию при изменении ввода в дочернем компоненте.

Вы хотите использовать v-bind для отображения значения и v-on:input для передачи данных обратно в родительский компонент.

См. Например https://codesandbox.io/s/rj76y5w02o .

Первая строка - это текст только для чтения. Выпадающий список выбора является родительским мутатором данных, а текстовое поле - дочерним компонентом.

По сути, вы хотите, чтобы данные содержались на родительской стороне и передавали данные в дочерний компонент с помощью реквизита. Внутри дочернего компонента вы хотите передать входное событие обратно родительскому для обработки с помощью $emit.

Изменение значения с помощью раскрывающегося списка родителей приведет к обновлению значения. Изменение значения изнутри ввода текста дочернего компонента также будет. Если вы введете one, two или three, выпадающий список выбора родителей также будет соответствующим образом обновлен.

0
ответ дан josephting 7 March 2019 в 05:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: