组件传参
父传子 :参数名称 子组件接受prop: 这里可以为对象或者数组详情参看文档
代码如下:
父组件传子组件代码如下:
父传子
<ModifyDialog :data="123"></ModifyDialog>
子接收
<script>
export default {
// 当前为对象方式接收数据
props: {
data: {
type: String, //接受类型,也可用数组使用多种类型接收,如:[String,Number]
default: '1'
}
}
// 这里也可以用数组方式接收
// props: ['data']
}
</script>
子组件传父组件代码如下:
子组件传传父组件参数需要通过事件传参 $emit
向父组件发射一个方法, 携带了一个参数。父组件需接收@handleData(这里为子组件传递过来的方法名)=“handleData(这里定义父组件接收方法名)”
子组件传参
this.$emit(handleData, {id: 123})
父组件接收
<ModifyDialog @handleData="handleData"></ModifyDialog>
export default {
methods: {
//当子组件发射事件(handleData)被父组件监听到执行 handleData
handleData(data) {
console.log(data) // {id: 123}
}
}
}
父子组件数据动态绑定,子组件还是采用$emit 父组件使用.sync绑定数据。可实现子组件发射像父组件进行同步。代码如下:
//父组件绑定子组件数据同步方法
<ModifyDialog :data.sync="data"></ModifyDialog>
//子组件更改父组件同步方法 向父组件发射方法,update代表更新父组件数据 注意:后边不要有空格:后边是你要更改的父组件绑定给子组件的变量名。第二位参数是需要更改同步父组件的最新数据
this.$emit('update:data','我是更改的最新数据')