Vue 3提供了多種方法來獲取子組件,可以使用ref、$children、$refs和$parent等方法來實現。
首先,可以使用ref方式獲取子組件。在父組件中通過v-bind指令將子組件綁定到父組件中的一個變量中,然后通過ref屬性來訪問該變量以獲取子組件。代碼示例如下:
<template> <div> <child-component ref="child"></child-component> </div> </template> <script> import ChildComponent from './ChildComponent.vue'; export default { components: { ChildComponent, }, mounted() { const childComponent = this.$refs.child; }, }; </script>
其次,可以使用$children方法來獲取子組件。該方法會返回所有子組件的數組,這可能會導致混亂,因此不推薦使用該方法。代碼示例如下:
<template> <div> <child-component></child-component> <child-component></child-component> </div> </template> <script> import ChildComponent from './ChildComponent.vue'; export default { components: { ChildComponent, }, mounted() { const childrenComponents = this.$children; }, }; </script>
第三種方式是使用$refs來獲取子組件。該方法可以通過在子組件中設置ref屬性來獲取子組件。代碼示例如下:
<template> <div> <child-component ref="child"></child-component> </div> </template> <script> import ChildComponent from './ChildComponent.vue'; export default { components: { ChildComponent, }, mounted() { const childComponent = this.$refs.child; }, }; </script>
最后,使用$parent方法來獲取父組件。該方法可以在子組件中調用,返回子組件的父組件實例。代碼示例如下:
<script> export default { mounted() { const parentComponent = this.$parent; }, }; </script>