vue 子组件调用父组件数据
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<script src="js/vue.js" type="text/javascript" charset="utf-8"></script>
</head>
<body>
<div class="" id="myVue">
<my-component>
</my-component>
</div>
<!--子组件-->
<template id="child" >
<div id="">
<div @click='changedata'>子组件:{{data}}</div>
</div>
</template>
<!--父组件-->
<template id="father">
<div>
<mycomponent-child v-bind:data="str"></mycomponent-child>
</div>
</template>
</body>
<script type="text/javascript" charset="utf-8">
/*在父组件中的数据str,
* 将父组件的数据绑定到子组件的属性data上
* 然后在子组件中就可以通过props接收到,
* 这样在子组件中就可以使用变量 this.data1访问到 父组件的 str1对应的值了。
*/
//当点击子组件,触发子组件的changedata方法,通过this.data = "父组件值被子组件修改了";改变了父级的str的值
//通过 this.$parent.fn()访问父组件的方法fn()。
var child={
props:["data"],
template:"#child",
data:function(){
return{
str:"我是子组件数据"
}
},
methods:{
changedata:function(){
this.data = "父组件值被子组件修改了";
this.$parent.fn();
}
}
}
/*父组件*/
var father={
template:"#father",
data:function(){
return{
str:"我是父组件数据"
}
},
methods:{
fn:function(){
alert("我是父组件方法")
}
},
components:{
"mycomponentChild":child
}
}
vm=new Vue({
//el:"#myVue",
components:{
"myComponent":father
}
}).$mount('#myVue');
</script>
</html>