vue3使用自定义组件内方法

重点

使用 defineExpose 来导出方法

// 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 来指定要暴露的方法属性,便可以在外部访问到组件自定义的属性方法了。
当然也可以去官网查看官方说法。

你可能感兴趣的:(vue.js,前端,javascript)