美文网首页
vue组件之间传值

vue组件之间传值

作者: 不期而遇_3491 | 来源:发表于2018-11-09 14:45 被阅读0次

    子向父组件传值:

    1,子组件中需要以某种方式例如点击事件的方法来触发一个自定义事件
    2,将需要传的值作为$emit的第二个参数,该值将作为实参传给响应自定义事件的方法
    3,在父组件中注册子组件并在子组件标签上绑定对自定义事件的监听
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title></title>
    <script src="../vue.min.js"></script>
    </head>
    <body>
    <div id="app">

        <v-child></v-child>
    </div>
    <template id="bbb">
        <p>
            <input v-model="ipt" />
        <button @click="send()">发送</button>
        {{info}}
        </p>
    </template>
    
    <template id="aaa">
        <p>
            {{str}}
            {{info}}
            <v-childl :name='str'  @jieshou="jieshousj"></v-childl>
        </p>
        
    </template>
    
    <script>
        var vm = new Vue({
            el:'#app',
            components:{
                'v-child':{
                    template:'#aaa',
                    data:function(){
                        return {
                            info:"父组件",
                            str:''
                        }
                    },
                    methods:{
                        
                        jieshousj:function(s){
                            
                                this.str=s
                        }
                    },
                    components:{
                        'v-childl':{
                            template:'#bbb',
                            data:function(){
                                return {
                                    info:'子组件',
                                    ipt:''
                                }
                            },
                            methods:{
                                send(){
                                    console.log(this.ipt)
                                    this.$emit('jieshou',this.ipt)
                                }
                            }
                        }
                    }
                }
            }
        })
    </script>
    

    </body>
    </html>

    父组件向子组件传值:

    1,子组件在props中创建一个属性,用以接收父组件传过来的值
    2,父组件中注册子组件
    3,在子组件标签中添加子组件props中创建的属性
    4,把需要传给子组件的值赋给该属性
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title></title>
    <script src="../vue.min.js"></script>
    </head>
    <body>
    <div id="app">

        <v-child></v-child>
    </div>
    <template id="bbb">
        <p>
        {{name}}
        {{info}}
        </p>
    </template>
    
    <template id="aaa">
        <p>
            <input v-model="ipt" />
            <button @click="send()">发送</button>
            {{info}}
            
            <v-childl :name='str'></v-childl>
        </p>
        
    </template>
    
    <script>
        var vm = new Vue({
            el:'#app',
            components:{
                'v-child':{
                    template:'#aaa',
                    data:function(){
                        return {
                            info:"父组件",
                            str:'sss',
                            ipt:''
                        }
                    },
                    methods:{
                        send(){
                            this.str=this.ipt
                        }
                    },
                    components:{
                        'v-childl':{
                            template:'#bbb',
                            data:function(){
                                return {
                                    info:'子组件'
                                }
                            },
                            props:['name']
                        }
                    }
                }
            }
        })
    </script>
    

    </body>
    </html>

    相关文章

      网友评论

          本文标题:vue组件之间传值

          本文链接:https://www.haomeiwen.com/subject/yfkoxqtx.html