javascript - 子级和父级之间共享 v-model 值

标签 javascript vue.js vuejs2 vue-component

我有一个与父组件共享相同的v-model的组件。代码如下:

Vue.component('greeting', {
  template: '<input type="text" :name="name" v-on:input="updateSearch($event.target.value)"> ' ,
  props: ['name'],
  methods: {
    updateSearch: function(value) {
      this.$emit('input', value);
    }
  }
});


const app = new Vue({
  el: '#app',
  data: {
    name: ''
  }
});
<script src="https://unpkg.com/vue@2.6.9/dist/vue.js"></script>
<div id="app">
  
  Child: <greeting v-model="name"></greeting>
  <br><br><br>
  Main: <input type="text" v-model="name" placeholder="" />

</div>

如果用户在其中任何一个输入框中输入文本,我想更新这两个输入框。任何建议都会有帮助。

最佳答案

如果您传入像对象这样的引用作为 prop,则可以在父级和子级上绑定(bind)该对象的属性

Vue.component('greeting', {
  template: '<input type="text" v-model="name.value" />' ,
  props: ['name']
});


const app = new Vue({
  el: '#app',
  data: {
    name: { value: '' }
  }
});
<script src="https://unpkg.com/vue@2.6.9/dist/vue.js"></script>
<div id="app">
  
  Child: <greeting v-bind:name="name"></greeting>
  <br><br><br>
  Main: <input type="text" v-model="name.value" placeholder="" />

</div>

关于javascript - 子级和父级之间共享 v-model 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55186182/

相关文章:

javascript - 在 jQuery 中操作字符串

javascript - 将值传递给函数参数 javascript 时遇到问题

laravel - Docker Laravel Vuejs Nginx,加载资源时出现问题

javascript - 如何读取 VueJs 中元素的 data-*?

javascript - Vue 列表项在状态更改时不会重新渲染

vue.js - Vuejs如何以这样的方式将一个数组分配给另一个数组,使得两个数组对更改没有反应

带有 setInterval 的 Javascript 动画不起作用

javascript - 为什么这个正则表达式总是返回 null?

web - Vue js 作为另一个站点上的小部件

vue.js - 如何在 vue.js 中查找组件的宽度