<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.3/vue.common.dev.js"></script>
</head>
<body>
<div id="app"></div>
<template id="temp">
<div>
子组件: <input type="text" v-model="mymessage" @change="changeValue">
</div>
</template>
<template id="t2">
<div>
<p>父组件{{message}}</p>
<child v-model="message"></child>
</div>
</template>
<template id="t3">
<div>包含父组件的大盒子
<parent></parent>
</div>
</template>
<script>
Vue.component('child', {
props: {
value: String, //v-model会自动传递一个字段为value的prop属性
},
data() {
return {
mymessage: this.value
}
},
methods: {
changeValue() {
this.$emit('input', this.mymessage);//通过如此调用可以改变父组件上v-model绑定的值
} //在一个组件上使用v-model相当于绑定名为value的prop和input事件
},
template: '#temp'
})
Vue.component('parent', {
// props: { 在一个组件上使用v-model相当于绑定名为value的prop
// message: String,
// },
template: '#t2',
data() {
return {
message: 'hello'
}
}
})
var app = new Vue({
el: '#app',
template: '#t3'
})
</script>
</body>
</html>
v-model实现父子组件通信
最新推荐文章于 2024-08-22 16:00:18 发布