解决Vue警告Write operation failed:computed value is readonly

 更新时间:2023年03月24日 09:37:40   作者:PKQ1023  
这篇文章主要给大家介绍了关于如何解决Vue警告Write operation failed:computed value is readonly的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下

警告信息:

浏览器控制台警告:Write operation failed: computed value is readonly

使用环境:

Vue 3.2.41

Chrome x64 v103.0.5060.66

报错情景:

利用Vue的响应式修改某个值时出现该警告。

<template>
    {{ msg }}
    <br>
    <button @click="add">+</button>
</template>
<script setup lang="ts">
import { computed, ref} from 'vue'

const x = ref('-')

// 计算属性
const msg:any  = computed(()=>{
    return x.value + '-'
})

// 修改 计算属性的值 的方法
const add = () => {
    msg.value = msg.value + '???'
}
</script>

报错原因:

修改的值是计算属性,而计算属性是只读的。所以无法修改。

解决方法:

为计算属性配置修改方法,如下:

<script setup lang="ts">
import { computed, ref} from 'vue'

const msg = ref('-')

// 计算属性
const computedMsg: any = computed({
    get() {
        // 这里返回的值是获取计算属性的值
        return msg.value + '-'
    },
    set(newValue) {
        // 参数newValue是被修改后的值
      
        // 这里是修改的具体逻辑
      	/*
		   注意这里不要使用下面的方法修改计算属性的值来达到修改目的
           而应该直接修改源响应数据xxx的值
		*/
        msg.value = newValue        
        // computedMsg.value = newValue
    }
})

// 修改 计算属性的值 的方法
const add = () => {
    computedMsg.value = computedMsg.value + '???'
}
</script>

参考:

计算属性 | Vue.js

总结

到此这篇关于解决Vue警告Write operation failed:computed value is readonly的文章就介绍到这了,更多相关Vue警告Write operation failed内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • vue3.0中的双向数据绑定方法及优缺点

    vue3.0中的双向数据绑定方法及优缺点

    这篇文章主要介绍了vue3.0中的双向数据绑定方法 ,文中通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-08-08
  • vue过滤器filter的使用方法详解

    vue过滤器filter的使用方法详解

    这篇文章主要给大家介绍了关于vue过滤器filter的使用方法,Vue.js的过滤器(Filter)是一种可重用的功能,用于对文本进行格式化,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-09-09
  • vue中实现路由跳转的三种方式超详细教程

    vue中实现路由跳转的三种方式超详细教程

    这篇文章主要介绍了vue中实现路由跳转的三种方式超详细教程,其中声明式router-link实现跳转最简单的方法,可用组件router-link来替代a标签,每种方式给大家讲解的非常详细需要的朋友可以参考下
    2022-11-11
  • Vue设置别名联想路径即@/生效的方法

    Vue设置别名联想路径即@/生效的方法

    这篇文章主要给大家介绍了Vue设置别名联想路径即@/生效的方法,文中有详细的代码示例和图文讲解,具有一定的参考价值,需要的朋友可以参考下
    2023-11-11
  • 详解基于Vue2.0实现的移动端弹窗(Alert, Confirm, Toast)组件

    详解基于Vue2.0实现的移动端弹窗(Alert, Confirm, Toast)组件

    这篇文章主要介绍了详解基于Vue2.0实现的移动端弹窗(Alert, Confirm, Toast)组件,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • vue.js 初体验之Chrome 插件开发实录

    vue.js 初体验之Chrome 插件开发实录

    这篇文章主要介绍了vue.js 初体验之Chrome 插件开发实录 ,需要的朋友可以参考下
    2017-05-05
  • 简单了解Vue + ElementUI后台管理模板

    简单了解Vue + ElementUI后台管理模板

    这篇文章主要介绍了简单了解Vue + ElementUI后台管理模板,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • 快速解决electron-builder打包时下载依赖慢的问题

    快速解决electron-builder打包时下载依赖慢的问题

    使用 Electron-builder 打包,有时会在下载Electron、nsis、winCodeSign的过程中 Timeout 导致打包失败,本文给大家分享快速解决electron-builder打包时下载依赖慢的问题,感兴趣的朋友一起看看吧
    2024-02-02
  • Vue解读之响应式原理源码剖析

    Vue解读之响应式原理源码剖析

    Vue 最独特的特性之一,是其非侵入性的响应式系统,下面这篇文章主要给大家介绍了关于Vue响应式原理源码剖析的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2021-10-10
  • vue directive全局自定义指令实现按钮级别权限控制的操作方法

    vue directive全局自定义指令实现按钮级别权限控制的操作方法

    这篇文章主要介绍了vue directive全局自定义指令实现按钮级别权限控制,本文结合实例代码对基本概念做了详细讲解,需要的朋友可以参考下
    2023-02-02

最新评论