我有一个文本输入与v-model
绑定它的值为data
。我还希望能够在parse()
值更改时调用我的v-model
函数,以便更新同样位于data
上的数组。
<div id="app">
<input
id="user-input"
type="text"
v-model="userInput">
<ul id="parsed-list">
<li v-for="item in parsedInput">
{{ item }}
</li>
</ul>
</div>
new Vue({
el: '#app',
data: {
userInput: '',
parsedInput: []
}
})
let parse = input => {
return input.split(',')
}
我应该如何使用v-model更改来更新data.parsedInput
和parse()
函数?这样做的Vue方式是什么?
依赖于另一个的数据属性的正确Vue方式是使用computed property,这样parsedInput
会在userInput
更改时自动更新:
let parse = input => {
return input.split(',')
}
new Vue({
el: '#app',
data: {
userInput: '',
},
computed: {
parsedInput() {
return parse(this.userInput)
}
}
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.2.1/vue.js"></script>
<body>
<div id="app">
<input id="user-input" type="text" v-model="userInput">
<ul id="parsed-list">
<li v-for="item in parsedInput">
{{ item }}
</li>
</ul>
</div>
</body>
作为旁注:在使用之前声明parse
函数,以防止is not defined
错误。