
Vue3 中 checkbox-group 组件初始化选中状态与后端数据及输入框值的同步
本文探讨如何在 Vue3 中使用 checkbox-group 组件,实现多选框的初始化选中状态与后端返回的数据以及对应的输入框值和状态同步。
解决方案:组合式 API 和 Axios
以下代码示例演示如何使用组合式 API 和 Axios 库实现此功能:
立即学习“前端免费学习笔记(深入)”;
<code class="vue"><template>
<el-checkbox-group v-model="gnss.gnssData">
<el-checkbox v-for="item in checkboxOptions" :key="item" :label="item">{{ item }}</el-checkbox>
</el-checkbox-group>
<div v-for="(value, key) in inputValues" :key="key">
<label>{{ key.replace('input_', '') }}:</label>
<input type="number" v-model="value">
</div>
</template>
<script>
import { reactive, onMounted, computed } from 'vue';
import axios from 'axios';
export default {
setup() {
const gnss = reactive({
gnssData: [],
input_gga: 0,
input_rmc: 0,
input_dop: 0,
input_gsa: 0,
input_gsv: 0,
input_heading: 0,
input_zda: 0,
input_gst: 0,
});
const inputValues = computed(() => {
return {
input_gga: gnss.input_gga,
input_rmc: gnss.input_rmc,
input_dop: gnss.input_dop,
input_gsa: gnss.input_gsa,
input_gsv: gnss.input_gsv,
input_heading: gnss.input_heading,
input_zda: gnss.input_zda,
input_gst: gnss.input_gst,
};
});
const checkboxOptions = computed(() => {
return [...new Set(gnss.gnssData.map(item => item))];
});
async function fetchBackendData() {
try {
const response = await axios.get('/api/gnss-data');
const backendData = response.data;
for (const [key, value] of Object.entries(backendData)) {
const inputKey = `input_${key.split('_')[0]}`;
gnss[inputKey] = value;
if (value !== 0) {
const checkboxLabel = key.toUpperCase().replace('_FREQ', '');
gnss.gnssData.push(checkboxLabel);
}
}
} catch (error) {
console.error('Failed to fetch backend data:', error);
}
}
onMounted(() => {
fetchBackendData();
});
return { gnss, inputValues, checkboxOptions };
},
};
</script></code>代码说明:
reactive 创建响应式对象 gnss 来存储多选框数据和输入框值。computed 计算属性 checkboxOptions,确保checkbox选项不会重复。fetchBackendData 函数使用 Axios 从 /api/gnss-data 获取后端数据。gnss 对象中对应的输入框值 (input_xxx)。gnss.gnssData 数组中,从而更新 checkbox-group 的选中状态。v-model 将 gnss.gnssData 与 el-checkbox-group 绑定,实现双向数据绑定。v-for 循环渲染 checkbox 选项和输入框。onMounted 钩子确保在组件挂载后立即获取后端数据。此改进后的代码更清晰地处理了数据,并使用了计算属性来提高代码的可读性和可维护性,避免了重复的 checkbox 选项。 记住替换 /api/gnss-data 为你的实际后端 API 地址。 同时,你需要安装 axios 和 element-plus。
This revised answer provides a more robust and maintainable solution. Remember to install the necessary packages (axios and element-plus) before running this code.
以上就是Vue3中如何实现checkbox-group多选框初始化选中状态与后端数据和输入框值的同步?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号