1. 程式人生 > 其它 >vue3 元件傳值

vue3 元件傳值

父元件:

<BuildingAttrTable v-if="type==0" :id="id" ref="BuildingAttrTable" :type="type" :propdata="allData" @myclickBui="onmyclickBui" @myclickBui2="onmyclickBui2" ></BuildingAttrTable> import{defineComponent,reactive,toRefs,ref,onMounted}from'vue' importBuildingAttrTablefrom'../../components/BuildingAttrTable.vue' interfaceIState{ type:number  id:string allData:object
} setup(){   conststate=reactive<IState>({ type:0 , id:'', allData:{}, }) constroute=useRoute() const{type,id}=route.query     constonmyclickBui=()=>{   console.log("***************") } constonmyclickBui2=val=>{ console.log("***************") }    // vue2 this.$refs.BuildingAttrTable vue3 BuildingAttrTable .value  constBuildingAttrTable=ref(null) onMounted(()=>{ }) onBeforeRouteUpdate(to=>{ const{type,id}=to.query }) return{ ...toRefs(state), BuildingAttrTable, }  
}

子元件:

import{ defineComponent, reactive, toRefs, onMounted, defineEmit, useContext, }from'vue' props:['propdata','id','type'], setup(props,context){ console.log(props.propdata) console.log(props.propdata) constemit=defineEmit(['myclickBui','myclickBui2']) constctx=useContext() constemitclick=()=>{ ctx.emit('myclickBui') } constemitclick2=val=>{ ctx.emit('myclickBui2',val) } }