当前位置: 首页> 房产> 家装 > 西安最有名的策划公司_济宁优化网络公司_网站的优化seo_网上销售有哪些方法

西安最有名的策划公司_济宁优化网络公司_网站的优化seo_网上销售有哪些方法

时间:2025/7/14 6:37:16来源:https://blog.csdn.net/qq_40205510/article/details/144819796 浏览次数:1次
西安最有名的策划公司_济宁优化网络公司_网站的优化seo_网上销售有哪些方法

一、什么是v-model?

v-model是Vue.js中的一个指令,用于在表单元素上实现数据的双向绑定。简单来说,v-model可以让我们轻松地读取和更新数据,无需手动操作DOM。

二、标签选择器组件分析

我们先来看一下子组件的代码:

<template><el-selectv-model="tags"multiplefilterableallow-createdefault-first-option:reserve-keyword="false"placeholder="可输入添加标签"@change="updateTagsValue"><el-optionv-for="item in tagsList":key="item.ID":label="item.label":value="item.label"/></el-select>
</template>

在这个组件中,我们使用了Element UI的组件来实现多选标签功能。通过v-model指令,我们将tags变量与组件的值进行了双向绑定。

三、v-model在子组件中的应用

在子组件的

const emits = defineEmits(['blur', 'update:tags']);
const props = defineProps({tags: {type: Array,default: [],},
});
watch(() => props.tags,(vals) => {tags.value = vals;},{deep: true,immediate: true,}
);

这里,我们通过defineEmits定义了一个自定义事件update:tags,用于在子组件中更新tags的值。同时,我们通过defineProps接收父组件传递的tags数组。

当props.tags发生变化时,我们通过watch监听器将新的值赋给tags.value,从而实现数据的双向绑定。

四、v-model在父组件中的应用

在父组件中,我们这样使用标签选择器组件:

<TagSelector v-model:tags="formData.tags" />

这里的v-model:tags实际上是一个语法糖,它等同于:

<TagSelector :tags="formData.tags" @update:tags="formData.tags = $event" />

当子组件中的tags值发生变化时,会触发update:tags事件,并将新的值传递给父组件。父组件通过监听这个事件,更新formData.tags的值,从而实现数据的双向绑定。

五、完整示例

子组件

<template><el-selectv-model="tags"multiplefilterableallow-createdefault-first-option:reserve-keyword="false"placeholder="可输入添加标签"@change="updateTagsValue"><el-optionv-for="item in tagsList":key="item.ID":label="item.label":value="item.label"/></el-select>
</template><script setup>
defineOptions({name: 'TagSelector',
});import { watch, ref, onMounted } from 'vue';
import { getTagList } from '@/api/code_quest/tag';const tagsList = ref([]);
const tags = ref([]);const emits = defineEmits(['blur', 'update:tags']);
const props = defineProps({tags: {type: Array,default: [],},
});onMounted(() => {updateTags();
});const updateTagsValue = (vals) => {emits('update:tags', vals);
};
const updateTags = async () => {const res = await getTagList({ pageSize: 9999 });if (res.code === 0) {tagsList.value = res.data.list;}
};watch(() => props.tags,(vals) => {tags.value = vals;},{deep: true,immediate: true,}
);
</script>

父组件使用

<TagSelector v-model:tags="formData.tags" />

六、总结

通过本文的讲解,我们了解了v-model在Vue组件中的应用。利用v-model,我们可以轻松实现父子组件之间的数据双向绑定,提高代码的可维护性和简洁性。在实际开发中,掌握v-model的使用技巧对于提高开发效率具有重要意义。

关键字:西安最有名的策划公司_济宁优化网络公司_网站的优化seo_网上销售有哪些方法

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: