父组件访问子组件
1.需要了解$children//拿所有子组件的时候的方法
2.还有$refs => 对象类型, //获取单个子组件的时候的方法 ref=‘aaa’(敲一遍案例会明白很多)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div id="app">
<cpn></cpn>
<cpn></cpn>
<my-cpn></my-cpn>
<y-cpn></y-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: {
message: '你好啊'
},
methods: {
btnClick() {
// 1.$children
// console.log(this.$children);
// for (let c of this.$children) {
// console.log(c.name);
// c.showMessage();
// }
// console.log(this.$children[3].name);
// 2.$refs => 对象类型, 默认是一个空的对象 ref='bbb'
console.log(this.$refs.aaa.name);
}
},
components: {
cpn: {
template: '#cpn',
data() {
return {
name: '我是子组件的name'
}
},
methods: {
showMessage() {
console.log('showMessage');
}
}
},
}
})
</script>
</body>
</html>
2.子组件访问父组件
//1.访问父组件 //访问父组件的方法 p a r e n t / / 2. 访 问 根 组 件 / / parent //2.访问根组件 // parent//2.访问根组件//root访问的是根节点
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div id="app">
<cpn></cpn>
</div>
<template id="cpn">
<div>
<h2>我是cpn的组件</h2>
<ccpn></ccpn>
</div>
</template>
<template id="ccpn">
<div>
<h2>我是子组件</h2>
<button @click="btnClick">按钮</button>
</div>
</template>
<script src="../js/vue.js"></script>
<script>
const app = new Vue({
el:'#app',
data:{
msg:"你好吗?",
},
components:{
cpn:{
template:'#cpn',
data(){
return{
name:'我是cpn组件的name'
}
},
components: {
ccpn:{
template: '#ccpn',
methods:{
btnClick(){
//1.访问父组件
// console.log(this.$parent)
// console.log(this.$parent.name)
//2.访问根组件$root
console.log(this.$root);
console.log(this.$root.msg);
},
}
}
}
}
},
})
</script>
</body>
</html>