vue sync出错怎么办

vue sync出错的解决办法:1、修改父组件传过来的数据,代码如“”;2、把需要传递的基本数据类型值放入对象中,代码如“”。

vue sync出错怎么办

本教程操作环境: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

(0)
上一篇 2025年3月11日 18:48:06
下一篇 2025年3月11日 18:48:12

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • vue初始化data方法有哪些

    vue初始化data方法有两种:1、object方式,语法“var data = { 键值对 }”;2、function方式,语法“data: function () {return { 键值对 }}”。需要注意组件和extend中的dat…

    2025年3月11日
    200
  • vue条件渲染包括什么

    vue条件渲染指令包括v-if、v-else、v-else-if、v-show。v-if指令用于条件性地渲染一块内容,这块内容只会在指令的表达式返回真值时才被渲染;v-else可以为v-if添加一个“else 区块”,v-else-if可以…

    2025年3月11日 编程技术
    200
  • vue中mvvm和mvc的区别有哪些

    mvvm和mvc的区别:1、mvvm各部分的通信是双向的,而mvc各部分通信是单向的。2、MVVM实现了view与model的自动同步,也就是model属性改变时,不需要手动操作dom元素去改变view的显示,而是改变属性后该属性对应的vi…

    2025年3月11日 编程技术
    200
  • 用vue写的页面后缀名是什么

    用vue写的页面后缀名是“.vue”。“.vue”文件是一个自定义的文件类型,用类HTML语法描述一个Vue组件;一个vue文件就是一个组件。vue页面有3个组成部分:1、模板(template),即template标签包裹的界面展示代码(…

    2025年3月11日 编程技术
    200
  • vue遍历对象属性的方法有哪些

    遍历对象属性的方法有:1、使用v-for指令遍历出对象的key和value,语法“v-for=”(val,key,i) in obj””;2、用Object.keys()遍历对象的键和值,语法“Object.keys…

    2025年3月11日 编程技术
    200
  • vue事件总线废除了吗

    vue3取消了全局事件总线,废除原因是安全性低。全局事件总线是一个全局任意组件通信技术,即任意组件间的通信均可实现。在vue3中,如果想要使用全局事件总线,需要引入第三方库mitt或tiny-emitter。 本教程操作环境:windows…

    2025年3月11日
    200
  • vue支持ie6么

    vue不支持ie6;vue官方声明是支持ie8以上版本的。不支持原因:1、ie8及以下版本不支持“Object.defineProperty”方法,但该方法是vue实现响应式的所必须的;2、Vue需要Promise的支持,而IE8及以下版本…

    2025年3月11日
    200
  • vue中mounted和created有什么区别

    区别:1、created在模板渲染成html前调用,即通常初始化某些属性值,然后再渲染成视图;mounted在模板渲染成html后调用,通常是初始化页面完成后,再对html的dom节点进行一些需要的操作。2、created中无法对chart…

    2025年3月11日 编程技术
    200
  • 安装vue devtools失败怎么办

    安装vue devtools失败的解决办法:1、在官网下载“vue-devtools”压缩包并解压;2、安装git bash;3、在终端cd到“devtools-main”文件夹中;4、执行“npm install yarn -g”命令;5…

    2025年3月11日 编程技术
    200
  • vue怎么修改父组件值

    vue修改父组件值的方法:1、通过props的方式,将父组件的方法传递到子组件,在子组件中通过props接收;2、通过“this.$emit”触发父组件方法实现修改;3、通过“this.$parent”直接触发父组件修改即可。 本教程操作环…

    2025年3月11日
    200

发表回复

登录后才能评论