vue通信方法总结(未)

2019-04-07  本文已影响0人  一包

1. 父给子通信

//父组件
<child :fathertochild="msg"></child>

<script>
    import child from ''
    export default{
        components:{
            child
        },
        data(){
            return {
                msg:"父向子传的值"
            }
        }
    }
</script>
//子组件
<script>
    
    export default{
        
        data(){
           
        },
        props:{
            fathertochild:String
        }
    }
</script>

2. 子向父传值

//子组件
//定义一个子组件传值的方法
<input type="button" @click="childclick">
<script>
  export default {
    data () {
      return {
        childValue: '我是子组件的数据'
      }
    },
    method:{
        childclick(){
           //fatherMethod是在父组件on监听的方法
          //第二个参数是需要传给父亲的数据
          this.$emit("fatherMethod",this.childValue)
        }
    }
    }
</script>
<!-- 引入子组件 定义一个on的方法监听子组件的状态-->
<child v-on:fatherMethod="myMethod"></child>
<script>
  import child from './child'
  export default {
    components: {
      child
    },
    data(){
       name:"" 
    },
    method:{
       myMethod:function(childvalue){
       // childValue就是子组件传过来的值
       this.name=childvalue
       }
    }
</script>

3. 兄弟组件传值 eventbus

import Vue from 'vue'
let connect = new Vue()    // 实例
export default connect
//组件a
<div @click="onclcik"></div>//点击触发传值事件
<script>
    import connect from './eventBus'
    export default{
        data(){
            return{
                msg:"组件a要传数据给b"
            }
        },
        methods:{
            onclick(){
                connect.$emit("activebus",this.msg)
            }
        }
    }
</script>
//组件b
 <script>
    import connect from './eventBus'
    export default{
        data(){
            return{
              msg:""  
            }
        },
        //组件未加载时执行事件
        mounted:{
            connect.$on("activebus",val=>{
                //箭头函数才会绑定this
                this.msg=val;
            })
        }
    }

3. vue路由传参

4. 利用本地缓存存储

5. vuex

上一篇 下一篇

猜你喜欢

热点阅读