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>

posted @ 2019-01-23 15:19  *沧海一粟*  阅读(7431)  评论(0编辑  收藏  举报