1.子组件操作父组件
要为子组件创建一个ref属性并且为它赋值,<chlid ref="title"></chlid> 然后在父组件中通过this.$refs.ref的属性 来值调用它
比如:父组件
<template id="parent">
<div>
<h1>父组件</h1>
<button @click="tap">点击</button>
<hr />
<chlid ref="title"></chlid>
</div>
</template>
js代码: methods: {
tap() {
console.log(this.$refs.title.a)
}
},
子组件:
<template id="chlid">
<div>
<h2>子组件</h2>
</div>
</template>
js代码: components: {
"chlid": {
template: "#chlid",
data() {
return {
a: "子组件数据"
}
},
}
}
点击按钮控制台输出:子组件数据
2.子组件操作父组件
子组件:
<template id="chlid">
<div>
<h2>子组件</h2>
<button @click="tap">点击</button>
</div>
</template>
js代码:components: {
"chlid": {
template: "#chlid",
data() {
return {
a: "子组件数据"
}
},
methods: {
tap() {
console.log(this.$parent.a)
}
}
}
}
父组件:<template id="parent">
<div>
<h1>父组件</h1>
<button @click="tap">点击</button>
<hr />
<chlid ref="title"></chlid>
</div>
</template>
js代码: data() {
return {
a: "父组件数据"
}
},
点击按钮控制台输出:父组件数据
3.代码:要引入vue.js
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<div id="app">
<parent/>
</div>
<template id="parent">
<div>
<h1>父组件</h1>
<button @click="tap">点击</button>
<hr />
<chlid ref="title"></chlid>
</div>
</template>
<template id="chlid">
<div>
<h2>子组件</h2>
<button @click="tap">点击</button>
</div>
</template>
<script src="../vue.js"></script>
<script type="text/javascript">
new Vue({
el: "#app",
data: {
},
components: {
"parent": {
template: "#parent",
data() {
return {
a: "父组件数据"
}
},
methods: {
tap() {
console.log(this.$refs.title.a)
}
},
components: {
"chlid": {
template: "#chlid",
data() {
return {
a: "子组件数据"
}
},
methods: {
tap() {
console.log(this.$parent.a)
}
}
}
}
}
}
})
</script>
</body>
</html>