Vue3.2のsetup script記法にて、テンプレート参照(Template Refs)で子コンポーネントのメソッドを呼び出したい
Vue3.2から導入されたsetup script記法はとても便利ですが、テンプレート参照(Template Refs)経由で子コンポーネントのメソッドを呼び出す方法が分からなかったので、調べました。
環境
- Vue 3.2
方法
子コンポーネント側で、公開するメソッドをdefineExposeする。
例
$ cat Parent.vue <script setup> const child = ref(null) const onClick = () => { child.log() } </script> <template> <div> <button type="button" @click="onClick">Log</button> <Child ref="child" /> </div> </template> $ cat Child.vue <script setup> const log = () => { console.log("I am God's child") } defineExpose({ log }) </script>