vue sync出错的解决办法:1、修改父组件传过来的数据,代码如“”;2、把需要传递的基本数据类型值放入对象中,代码如“”。
本教程操作环境:Windows10系统、Vue 3版、Dell G3电脑。
vue sync出错怎么办?
Vue修饰符.sync(Avoid mutating a prop directly since …….报错的一种解决方案)
前言
立即学习“前端免费学习笔记(深入)”;
我们都知道,子组件在修改父组件传过来的props时会报错,如下图
一、什么是.sync
当我们跨父子组件想要修改数据时,需要父子组件通讯,父传子 :在子组件绑定数据然后子组件用props接收,而子传父,则是父组件需要在组件上绑定事件,子组件使用$emit传递事件;这样的数据修改写起来显得有些麻烦,.sync这个修饰符就是一个缩写以上子组件修改父组件数据的写法
二 .sync的使用
语法:
:props名称 . sync=“props值”$emit( “ update:props名称 ” ,新值)
登录后复制
父组件
登录后复制
子组件
修改名字
登录后复制登录后复制
methods:{changeName(newName){//修改父组件传过来的数据this.$emit('update:name', newName)}}
登录后复制
:name.sync修饰符其实是以下代码的缩写@update:name="val => name= val"
登录后复制
三、其他 props双向邦定的方法
传递对象
把需要传递的基本数据类型值放入对象中,子组件中修改对象中的值就不会报错了,原理是对象是复杂数据类型,子组件接收到的对象和父组件传递的对象是共用一个内存地址的,故可实现双向邦定的效果。
父组件
名字:{{name}}
登录后复制
export default {data(){return{obj:{name: "张三"}}}}
登录后复制
子组件
修改名字
登录后复制登录后复制
export default {props:{toChildObj:{type:Object,default:{}},},data(){return{}},methods:{changeName(newName){//修改父组件传过来的数据this.toChildObj.name = newName;}}}
登录后复制
推荐学习:《vue.js视频教程》
以上就是vue sync出错怎么办的详细内容,更多请关注【创想鸟】其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2923457.html