vue中父级访问子级与子级访问父级
父级访问子级
通过$children与refs访问
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script src="../helloVue/js/vue.js"></script>
</head>
<body>
<div id="app">
<cpn></cpn>
<cpn ref="abc"></cpn>
<cpn></cpn>
<button @click="btnClick">按钮</button>
</div>
<template id="cpn">
<div>
<h2>{{message}}</h2>
</div>
</template>
<script>
var cpn = {
template: '#cpn',
data() {
return {
message:'我是子组件'
}
}
}
var app = new Vue({
el: '#app',
data: {},
methods: {
btnClick(){
console.log(this.$refs.abc.message)
}
},
components: {
cpn
}
})
</script>
</body>
</html>
子级访问父级
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script src="../helloVue/js/vue.js"></script>
</head>
<body>
<div id="app">
<cpn></cpn>
</div>
<template id="cpn">
<div>
<ccpn></ccpn>
</div>
</template>
<template id="ccpn">
<div>
<h2>{{message}}</h2>
<button @click="btnClick">按钮</button>
</div>
</template>
<script>
var cpn = {
template: '#cpn',
data() {
return {
message: '我是子组件'
}
},methods: {},
components: {
ccpn:{
template: '#ccpn',
data() {
return {
message: '我是子子组件'
}
}, methods: {
btnClick() {
console.log(this.$parent)
console.log(this.$root)
}
}
}
}
}
var app = new Vue({
el: '#app',
data: {},
methods: {},
components: {
cpn
}
})
</script>
</body>
</html>