我刚刚开始学习 Vue.js,但遇到了一个问题,我不知道如何访问和更改组件内的文本字段值。
假设我想访问或更改组件内第一个输入字段的值
我的组件
Vue.component('simple-input',
{
template: `
<input type="text" value="Some value...">
`,
});
Run Code Online (Sandbox Code Playgroud)
超文本标记语言
<div id="root">
<simple-input></simple-input>
<simple-input></simple-input>
<simple-input></simple-input>
<div @click="alertSimpleInput1">Show first input value</div>
<div @click="changeInput1('new value')">Change input value</div>
<div @click="alertSimpleInput2">Show second input value</div>
</div>
Run Code Online (Sandbox Code Playgroud)
main.js
new Vue({
el: '#root',
});
Run Code Online (Sandbox Code Playgroud)
包含value="Some value..."在模板中意味着输入的值最初将设置为字符串“Some value...”。您需要将输入的值绑定到组件上的数据属性。使用v-model双向绑定(当输入值更改时,它将更新数据属性的值,反之亦然)。
在您的示例中,实际上涉及更多一点,因为您想从根组件获取输入的值,因此组件<simple-input>必须公开它;做到这一点的方法是使用props(对于父到子数据流)和事件(对于子到父数据流)。
未经测试:
Vue.component('simple-input', {
template: `
<input type="text" :value="value" @input="$emit('input', $event.target.value)">
`,
props: ['value'],
});
Run Code Online (Sandbox Code Playgroud)
<div id="root">
<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 value</button>
<button @click="changeInput1('new value')">Change input value</button>
<button @click="alertSimpleInput2">Show second input value</button>
</div>
Run Code Online (Sandbox Code Playgroud)
new Vue({
el: '#root',
data: {
value1: 'Initial value 1',
value2: 'Initial value 2',
value3: 'Initial value 3',
},
methods: {
alertSimpleInput1() {
alert(this.value1);
},
alertSimpleInput2() {
alert(this.value2);
},
changeInput1(newValue) {
this.value1 = newValue;
},
},
});
Run Code Online (Sandbox Code Playgroud)
我知道您刚刚学习 Vue,但对于初学者来说,这里有很多东西需要解压。我不会详细介绍,因为已经有很多关于这些概念的信息。
阅读以下:
v-model在组件上使用(用于代码解释<simple-input>)| 归档时间: |
|
| 查看次数: |
31696 次 |
| 最近记录: |