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

Vue3使用Composition API后表单input输入框无法录入数据问题

问题原因与修复方案

你遇到的输入框无法录入内容的核心问题大概率是el-form的ref名称和你绑定的响应式对象user重名,Vue3中模板内的ref优先级高于setup返回的变量,重名后你v-model绑定的user.email、user.password实际指向的是el-form组件实例,而非你定义的响应式对象,自然无法正常双向绑定。

除此之外也可以同步排查以下常见问题:

  • 确认Element Plus的ElForm、ElFormItem、ElInput组件已正确注册,按需导入的用户容易出现组件漏注册导致双向绑定失效的问题
  • 确认Vue版本和Element Plus版本适配,避免跨大版本混用出现兼容性问题

修复后的代码示例

<template>
    <el-row justify="center">
        <el-col :span="6" class="login">
            <el-card shadow="always">
                <template #header>
                    <span>Member Login</span>
                </template>
                <div class="login__inner">
                    <!-- 把ref名改为userForm,避免和响应式对象user重名 -->
                    <el-form ref="userForm" :model="user">
                        <el-form-item>
                            <el-input
                                v-model="user.email"
                                placeholder="Email Address"
                                clearable
                                prefix-icon="message">
                            </el-input>
                        </el-form-item>
                        <el-form-item>
                            <el-input
                                v-model="user.password"
                                placeholder="Password"
                                clearable show-password
                                prefix-icon="lock"
                            >
                            </el-input>
                        </el-form-item>
                        <el-form-item>
                            <el-button type="primary">
                                <el-icon><check /></el-icon> Login
                            </el-button>
                        </el-form-item>
                    </el-form>
                </div>
            </el-card>
        </el-col>
    </el-row>
</template>

<script lang="js">
import { reactive } from 'vue';

export default {
    setup() {
        const user = reactive({
            email: '',
            password: '',
        });

        return {
            user,
        };
    },
};
</script>

修改后重新运行即可正常输入。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 00:24:03