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

Vue.js 3如何将GET请求返回的数据预填充到表单输入框中

问题原因及修复方案

1. 模板属性绑定语法错误

Vue不支持在HTML原生属性的赋值字符串中使用{{ }}插值语法,要给value属性绑定响应式变量,必须使用v-bind:value或者简写:value。原代码中value="{{ name }}"的写法无法被Vue解析,只会将{{ name }}作为普通字符串渲染到输入框中。

修正后的input代码:

<input id="name" type="text" v-bind:placeholder="$t('message.NamePlaceholder')" :value="name" required>

如果需要双向绑定,也可以直接用v-model="name"替换:value。

2. 异步请求赋值逻辑位置错误

axios发起的GET请求是异步操作,你将this.name = this.userInformation.Name写在then回调外部时,请求还未返回响应,userInformation还是初始的空对象,读取Name属性只能拿到undefined,必须将赋值逻辑放到then回调内部,等待请求返回后再执行。

3. methods属性语法错误

原代码中methods () {的写法错误,methods是组件的对象类型属性,应该用冒号赋值而不是函数定义的写法,正确写法是methods: {。


修正后的完整script代码

<script>
export default {
  data () {
    return {
      userInformation: {},
      name: "",
   }
},
mounted () {
  this.getUserInformation();
},
methods: {
  getUserInformation() {
    this.$axios({
      method: 'get',
      url: 'http://127.0.0.1:8000/api/get_user_information',
    }).then(response => {
      this.userInformation = response.data;
      // 赋值逻辑移到回调内部
      this.name = this.userInformation.Name;
    });
   }
 },
}
</script>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 07:12:04