一、< script setup >通过ref获取子组件的值或方法
父组件:
<pane-account ref="accountRef"></pane-account><script lang="ts" setup>import{ ref }from'vue';import PaneAccount from'./pane-account.vue';const accountRef = ref<InstanceType<typeof PaneAccount>>();constloginAction=()=>{// 父组件获取子组件ref值
accountRef.value?.accountLoginAction();};</script>
子组件:
<script lang="ts" setup>import{ ref, reactive, defineProps, defineExpose }from'vue';importtype{ ElForm }from'element-plus';const formRef =ref<InstanceType<typeof ElForm>>();constaccountLoginAction=()=>{
formRef.value?.validate((valid)=>{if(valid){console.log('登录');}else{console.log('222');}});};// 只有defineExpose暴露的值或方法才能被父组件通过ref访问 defineExpose({
accountLoginAction
});
二、setup()通过ref获取子组件值
父组件:
<pane-account ref="accountRef"></pane-account><script lang="ts">import{ defineComponent, reactive, ref }from'vue'exportdefaultdefineComponent({setup(){const accountRef =ref<InstanceType<typeof LoginAccount>>()constloginAction=()=>{
accountRef.value?.accountLoginAction()}return{
loginAction,
accountRef
}}})</script>
子组件:
<script lang="ts">import{ defineComponent, PropType, computed, ref }from'vue'exportdefaultdefineComponent({setup(props,{ emit }){constaccountLoginAction=()=>{console.log('子组件的方法')}return{
accountLoginAction
}}})</script>
本文转载自: https://blog.csdn.net/weixin_48300785/article/details/128819238
版权归原作者 我的代码永没有bug 所有, 如有侵权,请联系我们删除。
版权归原作者 我的代码永没有bug 所有, 如有侵权,请联系我们删除。