在 nuxtjs vuejs 中观看克隆输入
watching cloned input in nuxtjs vuejs
我在观看克隆输入时遇到问题
如何观察每个客户端的每个输入内部的任何变化
这里可以使用'Deep'吗?
ClientsForm.vue
<template>
<div v-for="(client, index) as clients" :key="index">
~
<input v-model="client.address.code">
</div>
</template>
<script>
export default{
~
data (){
return{
~
clients: json.parse(json.stringify(this.$store.getters['STATE']))
}
},
methods: {
clone(){
this.clients.push({
~
address: {
code: ""
}
})
}
}
watch: {
'client.address.code': function(oldVal, newVal){
//things todo
}
}
}
</script>
就未来的调试和整体简单性而言,最好的解决方案是为输入创建一个组件,以便分别观察每个组件的变化。
因此您当前的组件将如下所示:
<template>
<div v-for="(client, index) as clients" :key="index">
<AddressCode :code="client.address.code" />
</div>
</template>
<script>
import AddressCode from '@/components/AddressCode.vue'
export default {
components: {
AddressCode
},
data (){
return{
~
clients: json.parse(json.stringify(this.$store.getters['STATE']))
}
},
methods: {
clone(){
this.clients.push({
~
address: {
code: ""
}
})
}
}
}
</script>
AddressCode.vue
文件(新组件的文件)看起来像这样:
<template>
<div>
<input v-model="code">
</div>
</template>
<script>
export default {
props: ['code'],
watch: {
code (oldVal, newVal) {
// todos
}
}
}
</script>
请记住,如果 AddressCode.vue
文件位于 components
文件夹中,这应该有效。如果您想让 AddressCode
组件位于不同的文件夹中,您应该更改第一个文件中的 import
语句。
我在观看克隆输入时遇到问题
如何观察每个客户端的每个输入内部的任何变化
这里可以使用'Deep'吗?
ClientsForm.vue
<template>
<div v-for="(client, index) as clients" :key="index">
~
<input v-model="client.address.code">
</div>
</template>
<script>
export default{
~
data (){
return{
~
clients: json.parse(json.stringify(this.$store.getters['STATE']))
}
},
methods: {
clone(){
this.clients.push({
~
address: {
code: ""
}
})
}
}
watch: {
'client.address.code': function(oldVal, newVal){
//things todo
}
}
}
</script>
就未来的调试和整体简单性而言,最好的解决方案是为输入创建一个组件,以便分别观察每个组件的变化。
因此您当前的组件将如下所示:
<template>
<div v-for="(client, index) as clients" :key="index">
<AddressCode :code="client.address.code" />
</div>
</template>
<script>
import AddressCode from '@/components/AddressCode.vue'
export default {
components: {
AddressCode
},
data (){
return{
~
clients: json.parse(json.stringify(this.$store.getters['STATE']))
}
},
methods: {
clone(){
this.clients.push({
~
address: {
code: ""
}
})
}
}
}
</script>
AddressCode.vue
文件(新组件的文件)看起来像这样:
<template>
<div>
<input v-model="code">
</div>
</template>
<script>
export default {
props: ['code'],
watch: {
code (oldVal, newVal) {
// todos
}
}
}
</script>
请记住,如果 AddressCode.vue
文件位于 components
文件夹中,这应该有效。如果您想让 AddressCode
组件位于不同的文件夹中,您应该更改第一个文件中的 import
语句。