vue sync出错如何解决


这篇文章主要讲解了“vue sync出错如何解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue sync出错如何解决”吧!

vue sync出错的解决办法:1、修改父组件传过来的数据,代码如“<child-dialog :name.sync="userName"></child-Dialog>”;2、把需要传递的基本数据类型值放入对象中,代码如“<child-dialog :toChildObj="obj"></child-Dialog>”。

Vue修饰符.sync(Avoid mutating a prop directly since .......报错的一种解决方案)

前言

我们都知道,子组件在修改父组件传过来的props时会报错,如下图

一、什么是.sync

当我们跨父子组件想要修改数据时,需要父子组件通讯,父传子 :在子组件绑定数据然后子组件用props接收,而子传父,则是父组件需要在组件上绑定事件,子组件使用$emit传递事件;这样的数据修改写起来显得有些麻烦,.sync这个修饰符就是一个缩写以上子组件修改父组件数据的写法

二 .sync的使用

语法:

:props名称.sync=“props值”$emit(“update:props名称”,新值)

父组件

<child-dialog:name.sync="userName"></child-Dialog>

子组件

<el-buttontype="primary"@click="changeName('王五')">修改名字</el-button>
methods:{changeName(newName){//修改父组件传过来的数据this.$emit('update:name',newName)}}
:name.sync修饰符其实是以下代码的缩写@update:name="val=>name=val"

三、其他 props双向邦定的方法

传递对象

把需要传递的基本数据类型值放入对象中,子组件中修改对象中的值就不会报错了,原理是对象是复杂数据类型,子组件接收到的对象和父组件传递的对象是共用一个内存地址的,故可实现双向邦定的效果。

父组件

<div><child-dialog:toChildObj="obj"></child-Dialog><p><span>名字:</span>{{name}}</p></div>
exportdefault{data(){return{obj:{name:"张三"}}}}

子组件

<el-buttontype="primary"@click="changeName('王五')">修改名字</el-button>
exportdefault{props:{toChildObj:{type:Object,default:{}},},data(){return{}},methods:{changeName(newName){//修改父组件传过来的数据this.toChildObj.name=newName;}}}

感谢各位的阅读,以上就是“vue sync出错如何解决”的内容了,经过本文的学习后,相信大家对vue sync出错如何解决这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是主机评测网,小编将为大家推送更多相关知识点的文章,欢迎关注!


上一篇:vue3编译优化的内容有哪些

下一篇:vue menu不刷新如何解决


Copyright © 2002-2019 测速网 https://www.inhv.cn/ 皖ICP备2023010105号 城市 地区 街道
温馨提示:部分文章图片数据来源与网络,仅供参考!版权归原作者所有,如有侵权请联系删除!
热门搜索