vue3 api expose
expose
用于定义一些公开属性,可以在父组件中通过refs
调用。
一旦在组件中使用expose
定义公开属性,则组件内的其他属性就不能被父组件通过refs
调用。
// 在组件中定义expose
<script>
export default {
name: 'TestComp',
expose: ['publicMethod'],
methods: {
publicMethod() {
console.log('publicMethod')
},
privateMethod() {
console.log('privateMethod')
}
}
}
</script>
// 在父组件中调用
<script>
export default {
expose: ['publicMethod'],
mounted () {
this.$refs.tc[0].publicMethod() // 控制台打印 'publicMethod'
this.$refs.tc[0].privateMethod() // 报错
}
}
</script>
<template>
<test-comp ref='tc'></test-comp>
</template>