vue组件通讯(父传子,子传父)
父传子
(1)在父组件中自定义一个属性,通过v-bind或者:的形式,将data中的数据进行绑定;
(2)在子组件中的export default
导入下data同级,通过props
将父组件中的自定义的属性写入,就能够将父组件中的数据传过来了。
注意:props
只能够从父级到子级,就是所谓的单项数据流,而且props
这个属性是只读的,子级不能够修改父级的这个值 ,但是能够修改对象中的属性(一般不建议子级修改父级中的数据)
子传父
(1)父组件中自定义事件eg:@changeval="changeThisVal"
(2)子组件中,通过对应的固有事件,进行触发父组件调用子组件时使用的自定义事件名称eg: @click=clickEvent
,子组件中在methods通过this.$emit("父组件中的事件名称","需要传递的数据")
clickEvent(){
//自定义事件不要使用驼峰命名方法
this.$emit("changeval",{name:"nihao"});
}
(3)父组件中的自定义事件调用的方法中,通过参数进行接受子组件传过来的数据;eg:
clickEvent(obj){
console.log("我是子组件中传递过来的数据:"+obj);
}