重点
使用 defineExpose 来导出方法文章来源:https://www.toymoban.com/news/detail-805569.html
// child
<script setup>
import { ref, Ref } from 'vue'
const prop: Ref<string> = ref('child')
const method = (val: string) => {
console.log(val)
}
defineExpose({
prop,
method,
})
</script>
// father
<template>
<child ref="child" />
</template>
<script setup>
import { ref } from 'vue'
import child from './child.vue'
const child = ref<InstanceType<typeof child>>()
child.value.method(child.value.prop)
</script>
详解
< script setup> 组件时默认不导出属性方法的(类似 java 的 private ),即通过 ref 获取实例是无法访问到自定义的属性和方法,但是可以获取到组件实例。
可以通过 defineExpose 来指定要暴露的方法属性,便可以在外部访问到组件自定义的属性方法了。
当然也可以去官网查看官方说法。文章来源地址https://www.toymoban.com/news/detail-805569.html
到了这里,关于vue3使用自定义组件内方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!