vue3使用响应式数据 + v-model导致响应式失效el-form表单无法输入的问题

这篇具有很好参考价值的文章主要介绍了vue3使用响应式数据 + v-model导致响应式失效el-form表单无法输入的问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

vue3使用响应式数据 + v-model导致响应式失效el-form表单无法输入的问题

参考文章

重构vue2项目时发现的问题,原始项目使用的是Element-ui
其实vue3可以使用适配的Element-plus

问题描述

  1. el-form表单无法输入
  2. 控制台报错 Avoid adding reactive properties to a Vue instance or its root $data at runtime - declare it upfront in the data option. 使用响应式变量时应先声明

解决办法

由于 ref 命名和 model 的值一样导致出现了这样的问题。

<el-form ref="service" :model="service" label-width="80px">
    <el-form-item label="名称">
      <el-input v-model="service.name"></el-input>
    </el-form-item>
    ......
</el-form>

setup() {
  const state = reactive({
    service: {
      name: '**'
    }
  })
  return {
    ...toRefs(state)
  }
}

原因就是 el-form 声明了ref=“service”,导致 state 中声明的 service 被覆盖,2者冲突了。文章来源地址https://www.toymoban.com/news/detail-615112.html

到了这里,关于vue3使用响应式数据 + v-model导致响应式失效el-form表单无法输入的问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue v-model失效原因及解决方案

    绑定的值没有及时更新,可能是由于异步操作导致的。 解决方案: 可以使用 Promise 或 async/await 等方式来等待异步操作完成后再更新数据,或者使用 Vue.nextTick 方法来确保 DOM 已经更新。 绑定的值在组件内部被修改,但是没有使用 Vue.set 或 this.$set 方法来更新,导致变化无法被

    2024年02月11日
    浏览(29)
  • Vue3-在HTML标签、组件标签上使用v-model

    本篇为Vue3学习中遇到的v-model相关的记录,如有问题欢迎指正 v-model通常在input、select等标签上来实现数据双向绑定 原理 :v-model通过给标签value赋值来实现  数据—页面 的绑定。然后通过绑定input事件实现 页面—数据 的绑定。 原理 :在组件上时,v-model通过 :modelValue 来进行

    2024年01月24日
    浏览(56)
  • 【Vue技巧】Vue2和Vue3组件上使用v-model的实现原理

    ChatGPT4.0国内站点,支持GPT4 Vision 视觉模型:海鲸AI 在Vue中, v-model 是一个语法糖,用于在输入框、选择框等表单元素上创建双向数据绑定。当你在自定义组件中实现 v-model 功能时,你需要理解它背后的原理: v-model 实际上是一个属性和一个事件的简写。 在 Vue 2.x 中, v-mode

    2024年01月15日
    浏览(55)
  • Vue3使用Echarts导致tooltip失效

    版本 vue3.2.47 echarts5.4.1 使用响应式对象存储 echarts 实例,导致 tooltip 功能失效; 原因:Vue3 使用 proxy 对象代理,而 echarts 则使用了大量的全等(===), 对比失败从而导致了bug。 解决方法:将ref或reactive对象换成普通变量来保存 echarts 实例。 初始化图表 更新图表数据

    2024年02月10日
    浏览(35)
  • Vue3中v-model在原生元素和自定义组件上的使用

    目录 前言 一、原生元素上的用法 1. 输入框(input) 2. 多行文本域(textarea) 3. 单选按钮(radio) 4. 多选框(checkbox)  5. 下拉选择框(select)  二、自定义组件上的用法 1. 定义一个名为 modelValue 的 props 属性和一个名为 update:modelValue 的事件 2.使用一个可写的,同时具有 getter 和 setter

    2024年02月14日
    浏览(58)
  • vue3 的v-model语法糖

    Vue2的v-model默认解析成:value与@input Vue3的v-model默认解析成:modelValue与@update:modelValue 所以要是想通过封装组件支持v-model的使用,用v-model语法糖无疑是最好的选择 子组件定义使用modelValue进行接收父组件传递过来的值,定义事件update:modelValue通知父组件改变一些事情 举例使用:

    2024年02月03日
    浏览(68)
  • Vue3:有关v-model的用法

    目录 前言: 回忆基本的原生用法: 原生input的封装: 自定义v-model参数: 对el-input的二次封装: 多个v-model进行绑定: v-model修饰符: v-model自定义参数与自定义修饰符的结合:         提起v-model,想必都不陌生,作为vue的经典语法,帮助我们在编写项目的时候,省了很多很多

    2024年02月05日
    浏览(33)
  • vue3 系列:自定义 v-model

    1. input 中的 v-model 2. naive-ui 组件二次封装 v-model

    2024年02月07日
    浏览(33)
  • vue3 子组件实现v-model用法

    在Vue 3中,实现自定义的 input 组件并支持 v-model 绑定,涉及到对 modelValue 这个默认prop的处理和对应的 update:modelValue 事件的触发。Vue 3使得这个过程比Vue 2更为简化和灵活,尤其是在可以自定义绑定的属性和事件名方面。 步骤 1: 创建自定义Input组件 首先,创建一个自定义的I

    2024年04月27日
    浏览(36)
  • vue3中setup的两个参数 props,context (attrs,emit,slots),vue3中的双向数据绑定自定义事件emit和v-model

    目录 setup函数 props参数 案例 第一种写法(用setup函数的方式):  第二种方法(语法糖形式即setup写入script标签中)也可以传值,  context (attrs,emit,slots) vue3中的双向数据绑定自定义事件emit和v-model emit自定义事件 v-model 有两个参数分别是 props,context 即 props参数是一个 对象 ,

    2024年02月10日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包