<body> <div id="app"> <cpn></cpn> <cpn></cpn> <cpn ref="aaa"></cpn> <button @click="btnClick">点击</button> </div> <template id="cpn"> <div> <h3>我是子组件</h3> </div> </template> <script src='https://cdn.jsdelivr.net/npm/vue@2.6.12/dist/vue.js'></script> <script> const cpn = { template: "#cpn", methods: { showMessage() { console.log("showMessage"); } }, data() { return { name: "我是子组件的name" } } } const app = new Vue({ el: '#app', data: { }, components: { cpn, }, methods: { btnClick() { // 父组件访问子组件 用 .$children 或者 .$refs // console.log(this.$children); // this.$children[0].showMessage(); // for (let c of this.$children) { // console.log(c.name); // c.showMessage() // } // .$refs 用的更多 因为如果有多个不同的子组件时 更方便访问 // .$refs 默认是一个空对象 要在需要访问的那个子组件上写一个名字 比如 ref="aaa" console.log(this.$refs.aaa.name); } } }) </script> </body>