Vue:Avoid mutating a prop directly since the value will be overwritten whenever the parent..报错

本文主要是介绍Vue:Avoid mutating a prop directly since the value will be overwritten whenever the parent..报错,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Vue框架的:Avoid mutating a prop directly since the value will be overwritten whenever the parent component re-renders. Instead, use a data or goupuitied property based on theprop’s value.Prop being mutated:"number1"报错

我们想要在Vue框架中实现一个父子通信中的双向绑定,
这是出现错误的源码:

<div id="app"><!-- 假如在标签中不需要写东西,那么可以写成单标签<cpnn /> --><cpnn :number1=num1 :number2=num2 /></div><script src="vue.js"></script><template id="aaa"><div><!-- 这里打印一下组件的内容,来检查一下是否传入成功 --><h2>{{number1}}</h2><input type="text " v-model="number1"><h2>{{number2}}</h2><input type="text " v-model="number2"></div></template><script>const app = new Vue({el: '#app',data: {num1: 1,num2: 2,},components: {cpnn: {template: '#aaa',//定义了两个变量来接父组件传过来的东为number类型西props: {number1: Number,number2: Number,}}}})</script>

在使用时,虽然可以实现我们在输入框内输入内容,然后实时显示我们输入的内容,但是在控制台我们发现出现了报错,每输入或删除一个数子,就报错一次。

在这里插入图片描述
错误描述:

我们在props里面定义的变量只能通过父组件来修改,因为props本身的目的就是要求父组件来传数据,所以这个代码中我们不仅父组件修改了变量值,而且我们又通过input来修改了变量值,这是VUE不允许的,这样变量值就会变得很混乱。他建议让我们用data或者computed来代替。

修改方法

<div id="app"><!-- 假如在标签中不需要写东西,那么可以写成单标签<cpnn /> --><cpnn :number1=num1 :number2=num2 /></div><script src="vue.js"></script><template id="aaa"><div><!-- 这里打印一下子组件的内容,来检查一下是否传入成功 --><h2>props:{{number1}}</h2><h2>data1:{{datanumber1}}</h2><input type="text " v-model="datanumber1"><h2>props:{{number2}}</h2><h2>data2:{{datanumber2}}</h2><input type="text " v-model="datanumber2"></div></template><script>const app = new Vue({el: '#app',data: {num1: 1,num2: 2,},components: {cpnn: {template: '#aaa',//定义了两个变量来接父组件传过来的东为number类型西props: {number1: Number,number2: Number,},// 我们再创建一个data,将props里的内容传给data,再让v-model绑定data里的变量data() {return {datanumber1: this.number1,datanumber2: this.number2,}}}}})</script>

这样我们再运行就不会出现报错了:
在这里插入图片描述

这篇关于Vue:Avoid mutating a prop directly since the value will be overwritten whenever the parent..报错的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/168928

相关文章

Vue3中的动态组件详解

《Vue3中的动态组件详解》本文介绍了Vue3中的动态组件,通过`component:is=动态组件名或组件对象/component`来实现根据条件动态渲染不同的组件,此外,还提到了使用`markRa... 目录vue3动态组件动态组件的基本使用第一种写法第二种写法性能优化解决方法总结Vue3动态组件动态

IDEA编译报错“java: 常量字符串过长”的原因及解决方法

《IDEA编译报错“java:常量字符串过长”的原因及解决方法》今天在开发过程中,由于尝试将一个文件的Base64字符串设置为常量,结果导致IDEA编译的时候出现了如下报错java:常量字符串过长,... 目录一、问题描述二、问题原因2.1 理论角度2.2 源码角度三、解决方案解决方案①:StringBui

部署Vue项目到服务器后404错误的原因及解决方案

《部署Vue项目到服务器后404错误的原因及解决方案》文章介绍了Vue项目部署步骤以及404错误的解决方案,部署步骤包括构建项目、上传文件、配置Web服务器、重启Nginx和访问域名,404错误通常是... 目录一、vue项目部署步骤二、404错误原因及解决方案错误场景原因分析解决方案一、Vue项目部署步骤

Python Jupyter Notebook导包报错问题及解决

《PythonJupyterNotebook导包报错问题及解决》在conda环境中安装包后,JupyterNotebook导入时出现ImportError,可能是由于包版本不对应或版本太高,解决方... 目录问题解决方法重新安装Jupyter NoteBook 更改Kernel总结问题在conda上安装了

Python安装时常见报错以及解决方案

《Python安装时常见报错以及解决方案》:本文主要介绍在安装Python、配置环境变量、使用pip以及运行Python脚本时常见的错误及其解决方案,文中介绍的非常详细,需要的朋友可以参考下... 目录一、安装 python 时常见报错及解决方案(一)安装包下载失败(二)权限不足二、配置环境变量时常见报错及

MySQL报错sql_mode=only_full_group_by的问题解决

《MySQL报错sql_mode=only_full_group_by的问题解决》本文主要介绍了MySQL报错sql_mode=only_full_group_by的问题解决,文中通过示例代码介绍的非... 目录报错信息DataGrip 报错还原Navicat 报错还原报错原因解决方案查看当前 sql mo

vue基于ElementUI动态设置表格高度的3种方法

《vue基于ElementUI动态设置表格高度的3种方法》ElementUI+vue动态设置表格高度的几种方法,抛砖引玉,还有其它方法动态设置表格高度,大家可以开动脑筋... 方法一、css + js的形式这个方法需要在表格外层设置一个div,原理是将表格的高度设置成外层div的高度,所以外层的div需要

解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题

《解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题》文章详细描述了在使用lombok的@Data注解标注实体类时遇到编译无误但运行时报错的问题,分析... 目录问题分析问题解决方案步骤一步骤二步骤三总结问题使用lombok注解@Data标注实体类,编译时

Vue项目中Element UI组件未注册的问题原因及解决方法

《Vue项目中ElementUI组件未注册的问题原因及解决方法》在Vue项目中使用ElementUI组件库时,开发者可能会遇到一些常见问题,例如组件未正确注册导致的警告或错误,本文将详细探讨这些问题... 目录引言一、问题背景1.1 错误信息分析1.2 问题原因二、解决方法2.1 全局引入 Element

详解Vue如何使用xlsx库导出Excel文件

《详解Vue如何使用xlsx库导出Excel文件》第三方库xlsx提供了强大的功能来处理Excel文件,它可以简化导出Excel文件这个过程,本文将为大家详细介绍一下它的具体使用,需要的小伙伴可以了解... 目录1. 安装依赖2. 创建vue组件3. 解释代码在Vue.js项目中导出Excel文件,使用第三