vue组件之间传值、子组件获取父组件的方法、父组件获取子组件的方法

1、子组件向父组件传值

   子组件

<template>
    <div class="app">
       <input @click="sendMsg" type="button" value="给父组件传递值">
    </div>
</template>
<script>
export default {
 
    data () {
        return {
            msg: "我是子组件的msg",
        }
    },
     methods:{
         sendMsg(){
             //func: 是父组件指定的传数据绑定的函数,this.msg:子组件给父组件传递的数据
             this.$emit('func',this.msg)
         }
     }
}
</script>

  

子组件通过this.$emit()的方式将值传递给父组件

注意:这里的func是父组件中绑定的函数名

父组件:

<template>
    <div class="app">
        <child @func="getMsgFormSon"></child>
    </div>
</template>
<script>
import child from './child.vue'
export default {
    data () {
        return {
            msgFormSon: "this is msg"
        }
    },
    components:{
        child,
    },
    methods:{
            getMsgFormSon(data){
                this.msgFormSon = data
                console.log(this.msgFormSon)
            }
    }
}
</script>

 

2、父组件向子组件传值

父组件

<template>
    <div class="app">
        <child :date="msg"></child>
    </div>
</template>
<script>
import child from './child.vue'  //子组件
export default {
    data () {
        return {
            msg: "this is msg"
        }
    },
    components:{
        child, 添加到父组件的components中
    }
}
</script>

子组件

<template>
    <div class="app">
        <li >{{date}}</li>
    </div>
</template>
<script>
export default {
    props:['date'],
    data () {
        return {
            
        }
    }
}

 

原文链接:https://blog.csdn.net/weixin_38888773/java/article/details/81901831

 

3、子组件获取父组件的方法

父组件

<template>
  <div>
    <child @fatherFun="fatherFun"></child>
  </div>
</template>
<script>
  import child from '~/components/dam/child';
  export default {
    components: {
      child
    },
    methods: {
      fatherFun() {
        console.log('父方法');
      }
    }
  };
</script>

子组件

<template>
  <div>
    <button @click="sonFun()">点击</button>
  </div>
</template>
<script>
  export default {
    methods: {
      sonFun() {
        this.$emit('fatherFun');
      }
    }
  };
</script>

 

4、父组件获得子组件的方法

父窗体

<template>
  <div class="gl-wrap" id="box">
        <swiperTemp1 ref="temp1"></swiperTemp1>
  </div>
</template>
<script type="text/javascript">
  import swiperTemp1 from './swiper1.vue'
  export default {
    name: 'index',
    data () {
      return {}
    },
    methods: {
     
    },
    mounted(){
      this.$refs.temp1.test(123)

    },
    components: {//模板
      swiperTemp1
    }
  }
</script>

子组件

<template>
</template>
<script>
 
  export default{
    data () {
      return {
      }
    },
    methods: {
      test(n){
         alert(n)
      }
    },
    mounted(){
    }
  }
</script>
posted @ 2020-04-04 13:48  (⊙o⊙)买噶  阅读(873)  评论(0编辑  收藏  举报