我一个页面调用了一个tree组件,每个节点有相应的操作按钮,我想点击新增(add())或者编辑(edit())方法时传入一个值(这个值分辨在哪个节点下插入或者编辑哪个节点),再传入一个控制表单显示的Boolean值到页面,这个form组件也是调用的。相当于是兄弟组件间传值,我有点理不清逻辑,也不明白一些传参或者调用函数的语法。请教一下各路大 神!
跟着官网的教程学习了一下,vue父子组件间通信问题逻辑:
子组件传递参数给父组件:
//子组件调用父组件方法并且传递参数给父组件
add(data){
this.$emit("notice",{data})
}
父组件监听子组件的调用:
<MenuTree cardTitle="菜单管理"
:data="treeData"
:headerButton="true"
:operateButton="true"
style="margin-top:10px"
ref="menuTree"
@notice="showForm"></MenuTree>
<!-- 其中@notice与子组件对应 -->
父组件方法:
showForm(data){
this.whetherShow = true;
console.log(data)
}
大致逻辑是:如果子组件的add方法被调用了,则子组件传递个data值给父组件的showForm方法并且调用。我这里add方法是子组件的一个按钮事件,当子组件按钮被点击后能看到页面控制台输出了data的值。