• vue组件之间的传值


    1.父子组件之间的传值

    父组件

    <div id="app">
         <my-com1 :dat='msg1' @cd='msg3=$event'></my-com1>
         <p>这是子组件往父组件传的值:<span>{{msg3}}</span></p>
      </div>
     
    //vue实例
    var app=new Vue({
            el:'#app',
            data:{
                msg1:{
                    name:'zhangs',
                    text:'hahahaha'
                },
                msg3:''

            },
            methods:{}
        })

    子组件

    <template id="tem">
              <div>
                  <p>这是子组件</p>
                  <p>{{dat.name}}</p>
                  <p>{{dat.text}}</p>
                  <button @click='click'>子组件往父组件传值</button>
              </div>
        </template>
     
    Vue.component('my-com1',{
            template:'#tem',
            props:['dat'],
            data(){
                return{
                    msg2:'这是子组件传给父组件的值'
                }
            },
            methods:{
                click(){
                    this.$emit('cd',this.msg2)
                }
            }
        })

    总结

    父传子:子组件用props接受;

    子传父:子组件用$emit传出,父组件用$event接收

    子组件调用父组件的方法:this.$parent 可以访问到父组件 上所有的 data(){ 里的数据信息和生命周期方法,methods里的方法 }!

    2、兄弟之间的传值

    组件一:

    Vue.component('xiong-da',{
        data(){
            return{
                eat:'蜂蜜...'
            }
        },
        template: `
        <div>
            <p>我是熊大</p>
            <button @click='passVal'>传值给熊二</button>
        </div>
        `,
        methods:{
            passVal(){
                // 发送蜂蜜,相当于是发送来一个信息
                bus.$emit('xiong',this.eat);
            }
        }
    })

    组件二:

    Vue.component('xiong-er',{
        data(){
            return{
                msg:''
            }
        },
        template: `
        <div>
            <p>我是熊二</p>
            <p>熊大传递过来的:{{msg}}</p>
        </div>
        `,
        mounted() {
            var _this=this;
            // 接收熊大发送过来的信号
            bus.$on('xiong',function (val) {
                console.log(val)
                _this.msg=val
            })
        },
    })

    总结

    兄弟组件传值两种方式:
            一: 组件一 - 父组件 - 组件二
            二: bus(中间vue实例)
                $on 接收数据的组件
                $emit 发送数据的组件
  • 相关阅读:
    MongoDB 基础命令行
    AngularJS 监控对象属性:$watch和$digest
    AngularJS核心01:如何启动
    免费的编程中文书籍索引
    AngularJS Intellisense in Visual Studio 2012
    SQL Server中Rowcount与@@Rowcount
    VS 关于 .sln 文件和 .suo 文件
    Dart 基础重点截取 Dart 2 20180417
    io.netty.resolver.dns.DnsNameResolverContext
    mybatis BigDecimal Double Long 的坑爹事
  • 原文地址:https://www.cnblogs.com/wangyue6/p/13030193.html
Copyright © 2020-2023  润新知