如何更改计算的 属性 的值?
How can I change the value of a computed property?
有没有办法更改计算 属性 的初始数据?当我尝试使用输入标签更改数据时,vue 给了我一个警告,例如 Write operation failed: computed 属性 "searchField" is readonly。如果您想知道为什么我用计算而不是数据 属性 来制作这个简单的案例,那只是为了论坛中的简单性。我用计算出来的是有原因的。这是代码。
<template>
<input type="text" v-model="searchField" />
</template>
<script>
export default {
computed: {
searchField() {
return "";
}
}
};
</script>
当您围绕数据应用一些逻辑时,computed 属性很有趣。
在您的示例中,您应该首先声明一个 data 属性,然后您可以使用 getter / setter 应用逻辑:
<template>
<input type="text" v-model="searchField" />
</template>
<script>
export default {
data: () => ({
_searchField: ''
}),
computed: {
searchField: {
get() {
return this._searchField
},
set(value) {
this._searchField = value
}
}
}
};
</script>
有没有办法更改计算 属性 的初始数据?当我尝试使用输入标签更改数据时,vue 给了我一个警告,例如 Write operation failed: computed 属性 "searchField" is readonly。如果您想知道为什么我用计算而不是数据 属性 来制作这个简单的案例,那只是为了论坛中的简单性。我用计算出来的是有原因的。这是代码。
<template>
<input type="text" v-model="searchField" />
</template>
<script>
export default {
computed: {
searchField() {
return "";
}
}
};
</script>
computed 属性很有趣。 在您的示例中,您应该首先声明一个 data 属性,然后您可以使用 getter / setter 应用逻辑:
<template>
<input type="text" v-model="searchField" />
</template>
<script>
export default {
data: () => ({
_searchField: ''
}),
computed: {
searchField: {
get() {
return this._searchField
},
set(value) {
this._searchField = value
}
}
}
};
</script>