子传父值

效果1如下:


QQ图片20180921144246.png

代码1如下:

<body>
<div id='app'>
    <my-father></my-father>
</div>
<script src="js/vue.js"></script>
<script>
    Vue.component("my-father",{
        template:`
            <div>
                <h1>我是父组件</h1>
                <p>子组件传过来的数据:<b>{{mess}}</b></p>
                <my-child @send='rcvMsg'></my-child>
            </div>
            `,
        data:function(){
            return{
                mess:''
            }
        },
        methods:{
            rcvMsg:function(txt){
                this.mess=txt
            }
        }
    })
    Vue.component('my-child',{
        template:`
            <div>
                <h1>我是子组件</h1>
                <input type='text' v-model='msg'><button @click='sendMsg'>发送</button>
            </div>
            `,
        data:function(){
            return{
                msg:''
            }
        },
        methods:{
            sendMsg:function(){
                this.$emit('send',this.msg)
            }
        }
    })
    new Vue({
        el:'#app'
    })
</script>

效果2如下:


QQ图片20180921144455.png

代码2如下:

<body>
<div id="app">
    <my-father></my-father>
</div>
<script src="js/vue.js"></script>
<script>
    Vue.component("my-father",{
        template:`
            <div>
                <h1>{{mess}}</h1>
                <my-child @send='rcvMsg'></my-child>
            </div>
        `,
        data:function(){
            return{
                mess:''
            }
        },
        methods:{
            rcvMsg:function(txt){
                this.mess=txt
            }
        }
    })
    Vue.component('my-child',{
        template:`
            <button @click='sendToFather'>传给父元素</button>
        `,
        data:function(){
            return{
                msg:'我是子组件中的数据,要给父组件传值'
            }
        },
        methods:{
            sendToFather:function(){
                this.$emit('send',this.msg)
            }
        }
    })
    new Vue({
        el:'#app'
    })
</script>

效果3如下:


QQ图片20180921144837.png

代码3如下:

  <div id='app'>
   <my-component></my-component>
  </div>
<script src="js/vue.js"></script>
<script>
    Vue.component('my-component',{
        template:`
            <div>
                <h1>我是父组件</h1>
                <my-child v-bind:megg='msg' @send='rcvMsg'></my-child>
                <b>{{number}}</b>
            </div>
        `,
        data:function(){
            return{
                msg:'hello vue',
                number:''
            }
        },
        methods:{
            rcvMsg:function(txt){
                this.number=txt
            }
        }
    })
    Vue.component('my-child',{
        props:['magg'],
        template:`
            <div>
                <h2>我是子元素</h2>
                <a hred='#'>{{magg}}</a>
                <button @click='sendFather'>发送给父组件</button>
            </div>
        `,
        data:function(){
            return{
                num:5
            }
        },
        methods:{
            sendFather:function(){
                this.$emit('send',this.num)
            }
        }
    })
    new Vue({
        el:'#app'
    })
</script>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容