javascript - vue.js 中同级组件之间的两种方式绑定(bind)

标签 javascript vue.js

使用预输入时https://github.com/pespantelis/vue-typeahead我可以在两个预先输入的搜索词之间进行两次绑定(bind)吗?所以基本上用户在哪个搜索框中输入内容并不重要,但两者都应该从不同的端点返回数据?

<typeahead ep="http://localhost:8080/ep1"></typeahead>
<typeahead ep="http://localhost:8080/ep2"></typeahead>

最佳答案

是的。只需将相同的值传递给两个组件即可。

<typeahead ep="foo" v-model="someValue"></typeahead>
<typeahead ep="bar" v-model="someValue"></typeahead>

然后在您的组件中,当您 this.$emit 时,您传回父级的值都会更新。

这是一个非常简单的示例:

Vue.component('typeahead', {
  template: '<div><input v-model="displayValue"> on {{ endpoint }}</div>',
  props: {
    value: String,
    endpoint: String,
  },
  computed: {
    displayValue: {
      get () {
        return this.value
      },
      set (value) {
        this.$emit('input', value)
      },
    },
  },
})

这里它涉及一些常见场景,例如更改父级的值,确保父级数据在更改子级时更新等:https://jsfiddle.net/crswll/tLmszrp2/

关于javascript - vue.js 中同级组件之间的两种方式绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41164262/

相关文章:

javascript - 将脚本放在底部的两种不同方式 - 有什么区别?

node.js - Jest 单元测试不会等待 axios 响应

javascript - Vuex 不更新使用 mapState 映射的计算变量

javascript - 我可以使用 nextUntil 来获取这些值吗?

javascript - Chart.js 不会显示正常图表

javascript - Vue - 使用插件作为原型(prototype)

css - 样式 div 在两行中与 flexbox 对称

javascript - Vue.js:更改时调用函数

javascript - Harmony 模块 - 如何处理平台差异?

javascript - 浅层比较与 Pure Component 和 setState 的值(value)如何?