vue的子元件操作父元件以及父元件操作子元件
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>