1、父组件向子组件传值
父组件:
|
|
子组件:
|
|
2、子组件向父组件传值
父组件:
|
|
子组件:
|
|
3、兄弟组件传值
可以借用公共父元素。子组件A this.$emit("eventName", data) 触发事件,父组件监听事件,更改父组件 data , 通过Props 传值到子组件B,子组件B watch Props(注意不是watch 子组件B自身data)
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<el-tab-pane label="组织信息" name="second"> <el-row :gutter="30"> <el-col :span="6"> <!-- 组织组件子组件A --> <Organization @callBackInfo="handleInfo"></Organization> </el-col> <el-col :span="18"> <!-- 部门领导信息子组件B --> <LeaderHead :partInfo="infos" ></LeaderHead> <!-- 人员信息 --> <PersonTable></PersonTable> </el-col> </el-row> </el-tab-pane> |
|
1
2
3
4
5
6
7
8
9
10
|
// 父组件methods: { handleClick(tab, event) { console.log("tab 切换"); }, handleInfo(data){ console.log({prop:data}) this.infos = data },} |
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
// 子组件Amethods:{ getOrganizationTree(){ this.$axios.get( "/api/dingtalk/getDeptTree", { headers: { "Content-Type": "application/x-www-form-urlencoded" } } ) .then( res => { var result = res.data; if (result.success) { console.log(result.data) this.treeData = [result.data] let partInfo = [ {name:"管理员:", value:"熊涛"}, {name:"会话ID:", value:"dafasdfadsfasdf"}, {name:"部门所有者:", value:"熊涛1000"} ] this.$emit("callBackInfo", partInfo) console.log(50050) } else { alert(result.message) } }) },} |
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
// 子组件B<script>export default { name:"LeaderHead", props:["partInfo"], data(){ return { infos:this.partInfo } }, watch:{ partInfo(){ console.log({PART:this.partInfo}) this.infos = this.partInfo; } }, mounted(){ this.infos = this.partInfo; }}</script> |
原文:https://www.cnblogs.com/singGirl/p/11974067.html