很多时候,我们的子组件作用有所不同,因此我们需要用相同的数据结构,而使用父组件中的方法来进行执行。
它们之间的关系不是很复杂,我们需要进行以下设置,就可以做到了
1.首先,在引用子组件时定义 v-on 属性,假如我们的子组件名称为 am-operation
,而父组件也就是当前组件中要给到子组件的方法为parentMethod
,那么代码如下
<am-operation v-on:callback="parentMethod"></am-operation>
注意:parentMethod
正是父组件中的方法。
2.然后,我们在子组件的模板部分需要调用的地方添加如下代码
<am-button type="success" lagel="提交" @click="childrenMethod( attr1,attr2 )"></am-button>
注意:此处 childrenMethod 为子组件中的方法。
3.最后,我们需要在子组件的 methods
中添加对应的 childrenMethod
方法如下
Vue.component('am-menu-operation', {
// ......
methods:{
childrenMethod( attr1,attr2 ){
this.$emit( 'callback',attr1,attr2 );
}
}
}
注意:重点就在 this.$emit
,而callback 正是 v-on:后定义的方法名称