1

子组件代码
上传中.![image.png

父组件代码
image.png

大多数情况下,父组件通过v-bind(:)的方式修改子组件的props对象中的属性来达到父改子的目的;
反过来,子改父则通过语法糖: .sync修饰符的方式修改,代码例子如上述

.sync 修饰符(用于子组件修改父组件)
是@update:changeTitle="obj.title = $event" 语法糖,其原理就是将event对象传入到子组件

如何实现:
1)子组件首先定义个props属性:
props: {

title: {
  type: String,
  default: "",
},

},
其次定义一个emit:
this.$emit("update:changeTitle", newTitle);

2)父组件如果实现双向绑定,则需要:
1.v-bind 作为单向子组件修改其属性,这里不做详细代码说明,用的太熟了
2.使用语法糖作为子组件修改父组件其属性:
:title="obj.title" // props,父组件修改子组件
:changeTitle.sync="obj.title" // 通过点击子组件的方法,修改父组件

2)场景二,子向父单向修改
子组件代码:
image.png

父组件代码:
当点击按钮后,这里的msg属性值会发生改变
image.png

可以试想下子改父的需求场景,
大概逻辑就是这样,具体用法的看业务需求。。。


郁南莲
1 声望0 粉丝