如何使用基于scriptsetup语法的vue 3 $ refs,针对这个问题,本文详细介绍了相应的分析和解决方法,希望能帮助更多想要解决这个问题的朋友找到更简单更容易的方法。
00-1010vue2语法在组件上设置ref属性后,可以通过该属性的值在代码中访问相应的子组件。$ refs.ref。
一个设置ref值的组件:
基本输入=用户名称输入/基本输入在js代码中可以通过如下代码访问到这个组件:
这个。$ refs.usernameInput输入可以调用里面的方法:
//假设在基本输入组件中有一个方法foo。
这个。$ refs . usernameinput . foo();详细使用请参考底部列出的参考文章。
00-1010在网上发现了一些零散的文章,尝试后无法使用,但我们通过这些文章了解到了一些关键信息,最终整理出以下步骤:
00-1010这与vue2类似。当父组件调用子组件时,ref值被设置。
childware ref=' childref '/
一、vue2语法
设置后,可以通过ref方法得到vue3。
constcildRef=ref();这里的变量名称需要与上面的ref相同。如何直接打印childRef,这次会是:
未定义因为页面组件还没有挂载,需要先挂载才能正常使用。
onMounted(()={ 0
console . log(ChildReF . value);//代理{…}
});00-1010在上面的步骤2中获得子组件实例后,不能在子组件中使用方法,因为使用脚本设置的组件默认是关闭的,如果需要公开,需要使用defineExpose编译器宏。
//子组件代码
const foo=()={ 0
console . log(' foo ');
}
defineExpose({ 0
富(中国姓氏)
});父组件内调用:
//调用子组件方法
child ref . value . foo();//foo然后可以调用子组件的方法。
查看childRef.value,也可以看到其中公开的foo方法:
vue3父组件调用子组件方法
完整参考代码:
父组件:
模板
ChildVueref='childRef'/
/模板
scriptsetuplang='ts '
从“@vue/reactivity”导入{ ref };
从“@vue/runtime-core”导入{ OnMounted };
' importChildVuefrom '。/child . vue ';
constcildRef=ref();
console . log(ChildReF . value);//未定义
onMounted(()={ 0
console . log(ChildReF . value);//代理{…}
//调用子组件方法
child ref . value . foo();//foo
});
/script
风格
/子组件:风格
template childdemo/模板
scriptsetuplang='ts '
const foo=()={ 0
console . log(' foo ');
}
defineExpose({ 0
富(中国姓氏)
});
/script
风格
/style关于如何使用基于scriptsetup语法$refs的vue3的问题的答案在此分享。我希望
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/151647.html