Vue 子組件與子組件之間傳值


可以借用公共父元素。子組件A  this.$emit("eventName", data) 觸發事件,父組件監聽事件,更改父組件 data , 通過Props 傳值到子組件B,子組件B watch Props(注意不是watch 子組件B自身data)

     <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>        

  

// 父組件
methods: {
      handleClick(tab, event) {
        console.log("tab 切換");
      },
      handleInfo(data){
        console.log({prop:data})
        this.infos = data
      },
}

  

// 子組件A
methods:{
        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)
                }
            })
        },
}

  

// 子組件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>

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM