You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vue组件中如何在函数内引用modelValue(Vite构建SFC场景)

解决方案

在Vue 3的<script setup>语法中,defineProps会返回一个包含所有props的对象,你直接使用modelValue会报错,因为它并非全局变量,而是该返回对象的属性。以下是两种可行的解决方式:

方法一:解构props对象

直接从defineProps的返回值中解构出modelValue,即可在函数内直接使用:

<script setup>
const { modelValue } = defineProps(['modelValue']);
defineEmits(['update:model-value']); // 注意修正拼写错误:udpate → update

function portPlaceholder() {
    if (modelValue?.type === 'example') return 'something';
    if (modelValue?.type === 'other') return 'something-else';
    return 'default-something';
}
</script>
<template>
    Some input: <input type="text" :placeholder="portPlaceholder()" />
</template>

方法二:通过props对象访问

将defineProps的返回值赋值给变量,通过变量访问modelValue属性:

<script setup>
const props = defineProps(['modelValue']);
defineEmits(['update:model-value']);

function portPlaceholder() {
    if (props.modelValue?.type === 'example') return 'something';
    if (props.modelValue?.type === 'other') return 'something-else';
    return 'default-something';
}
</script>
<template>
    Some input: <input type="text" :placeholder="portPlaceholder()" />
</template>

内容的提问来源于stack exchange,提问作者jakubiszon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 14:54:24