一、父访问子
父组件访问子组件 : 使用
$children
或$refs
1. 使用$children
<body>
<div id="app">
<cpn></cpn>
<button @click="btnClick">按钮</button>
</div>
<template id="cpn">
<div>
我是子组件
</div>
</template>
<script src="../js/vue.js"></script>
<script>
const app = new Vue({
el: "#app",
data: {
score: 90,
},
methods: {
btnClick() {
console.log(this.$children[0].message);
}
},
components:{
cpn: {
template: "#cpn",
data() {
return {
message: "我是子组件的message"
}
}
}
}
})
</script>
</body>
2. 使用$refs
$refs
是一个对象类型, 默认是一个空对象
需要在子组件上面添加一个标记ref="aaa"
<!-- 添加标记 -->
<cpn ref="aaa"></cpn>
使用
<body>
<div id="app">
<cpn></cpn>
<cpn></cpn>
<!-- 添加标记 -->
<cpn ref="aaa"></cpn>
<button @click="btnClick">按钮</button>
</div>
<template id="cpn">
<div>
我是子组件
</div>
</template>
<script src="../js/vue.js"></script>
<script>
const app = new Vue({
el: "#app",
data: {
score: 90,
},
methods: {
btnClick() {
console.log(this.$refs.aaa.message);
}
},
components:{
cpn: {
template: "#cpn",
data() {
return {
message: "我是子组件的message"
}
}
}
}
})
</script>
</body>
二、子访问父
子组件访问父组件 : 使用
$parent
<body>
<div id="app">
<cpn></cpn>
</div>
<template id="cpn">
<button @click="btnClick">按钮</button>
</template>
<script src="../js/vue.js"></script>
<script>
const app = new Vue({
el: "#app",
data: {
message: "我是父组件的message",
},
components:{
cpn: {
template: "#cpn",
methods: {
btnClick() {
console.log(this.$parent.message);
}
},
}
}
})
</script>
</body>