
Vue 3 中使用 computed 属性实现输入框内容实时同步
在构建动态表单或需要多个输入框内容相互关联的应用场景中,实现输入框内容的实时同步至关重要。本文将演示如何利用 Vue 3 的 computed 属性优雅地解决这个问题。
让我们来看一个具体的例子:假设您需要一个地址输入表单,分别包含省份、城市和地区三个输入框,并将这三个输入框的内容实时合并到一个完整的地址输入框中。
代码示例
以下代码展示了如何使用 ref 和 computed 属性实现这一功能:
import { ref, computed } from 'vue';
const province = ref('');
const city = ref('');
const district = ref('');
const fullAddress = computed(() => {
return [province.value, city.value, district.value].filter(Boolean).join(' ');
});
在这个例子中:
立即学习“前端免费学习笔记(深入)”;
- 我们使用
ref定义了三个响应式变量province、city和district,分别用于存储省份、城市和地区信息。 -
computed属性fullAddress实时计算完整的地址。filter(Boolean)用于过滤掉空字符串,避免在地址中出现多余空格。join(' ')将省份、城市和地区用空格连接起来。
当用户在任何一个输入框中输入或修改内容时,province、city 或 district 的值会发生变化,从而触发 fullAddress 的重新计算,最终实现输入框内容的实时同步。 这使得数据保持一致,并简化了数据处理逻辑。










