作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我刚刚开始学习 Vue.js,我正在尝试从我的组件中获取值。有没有办法在我的组件中有多个输入字段并在组件外部获取每个字段的值?
例如,如果我想在简单输入组件中获取和更改两个输入字段的值。现在它们都有相同的值,但我想在每个输入中有 2 个不同的值。
我的组件
Vue.component('simple-input', {
template: `
<div>
<input type="text" :value="value" @input="$emit('input', $event.target.value)">
<input type="text" :value="value" @input="$emit('input', $event.target.value)">
</div>
`,
props: ['value']
});
main.js
new Vue({
el: '#root',
data: {
value1: 'Initial value 1',
value2: 'Initial value 2',
value3: 'Initial value 3'
},
methods: {
alertSimpleInput1() {
alert(this.value1);
this.value1 = 'new';
}
}
});
HTML
<simple-input v-model="value1"></simple-input>
<simple-input v-model="value2"></simple-input>
<simple-input v-model="value3"></simple-input>
<button @click="alertSimpleInput1">Show first input</button>
最佳答案
如果您想为每个输入设置不同的值,您有两种选择:
第一次实现:
Vue.component('simple-input', {
template: `
<div>
<input type="text" :value="value1" @input="$emit('input', $event.target.value)">
<input type="text" :value="value2" @input="$emit('input', $event.target.value)">
</div>
`,
props: ['value1','value2']
});
new Vue({
el: '#root',
data: {
value11: 'Initial value 11',
value12: 'Initial value 12',
value21: 'Initial value 21',
value22: 'Initial value 22',
value31: 'Initial value 31',
value32: 'Initial value 32'
},
methods: {
alertSimpleInput1() {
alert(this.value11);
this.value11 = 'new';
}
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="root">
<simple-input :value1="value11" :value2="value12"></simple-input>
<simple-input :value1="value21" :value2="value22"></simple-input>
<simple-input :value1="value31" :value2="value32"></simple-input>
<button @click="alertSimpleInput1">Show first input</button>
</div>
关于javascript - Vue.js - 如何在一个组件中有多个输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53680628/
我是一名优秀的程序员,十分优秀!