<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div id="app">
<parent></parent>
</div>
</body>
<script src="node_modules/vue/dist/vue.js"></script>
<script>
//子组件
let chiled = {
template:`
<div>
<p>我是子组件:{{name}}</p>
<button @click="changeName()">changeName</button>
</div>
`,
props:{
name:{
type:String,
required:true,
default:'hello'
}
},
methods: {
changeName(){
//子传父
this.$emit("getName","lily")
}
}
};
// 父组件
let parent = {
template:`
<div>
<p>我是父组件:</p>
//接收子传父的参数
<chiled :name="name" @getName="setName"></chiled>
</div>
`,
components: {
chiled
},
data(){
return {
name:"boat",
}
},
methods: {
setName(val){
this.name = val;
}
}
};
new Vue({
el:"#app",
components:{
parent
},
data:{
n: 0
},
methods:{
addnum(){
this.n++;
}
}
});
</script>
</html>