vue+elementUI項目,父組件向子組件傳值,子組件向父組件傳值,父子組件互相傳值。


vue+elementUI項目,父組件向子組件傳值,子組件向父組件傳值,父子組件互相傳值。

 

vue 父組件與子組件相互通信

一、父組件給子組件傳值
      props 實現父組件向子組件傳值。
1父組件里:
<child-pack  :msg ="myMsg" v-on:listenTochildEvent="showMessageFromChild"></child-pack>
msg是綁定的自定義屬性,類似我們原生html 給標簽自定義屬性一樣,Widget是傳輸變量
<script >
import childpack from './childPack.vue' //引用子組件
export default{
  name: 'FatherPack',
  components: { childpack },
  data(){
      return(){
           myMsg:‘我是父組件參數’
       }
  },
  mothods:{
  }

}
</script>
 
2子組件里:
<div>
    <span>{{msg}}</span>
</div>
export default {
  name: 'ChildPack',
  props:["msg"]
 //也可以指定默認類型和默認值
 // props: {
 //    msg: {
 //       type: Number,
  //      default: 0
  //    }
 // },
  
  // isPublic: {
  //    type: Boolean,
  //    default: undefined  //注意!對於布爾類型,默認值不要寫成false,否則isPublic永遠為false。
  // }
  data(){
  },
  created() {
     console.log('child_msg',this.msg)
  },
  mothods:{
  },

}

二、子組件傳值到父組件
this.$emit() 實現子組件向父組件傳值。

1在子組件里:
export default{
    methods: {
          changeFather(){
             this.$emit("listenTochildEvent","我是子組件的參數");
          },
        //可以傳遞參數,參數可以是值、對象、數組等類型。
        //  changeFather(pms){ 
        //    this.$emit("listenTochildEvent",pms);
       //   },
} } 
 

2在父組件:定義事件listenTochildEvent,並實現showMessageFromChild方法,接收父組件傳遞來的參數。
<child-pack  :msg ="myMsg" v-on:listenTochildEvent="showMessageFromChild"></child-pack>
<script >
import childpack from './childPack.vue' //引用子組件
export default{
  name: 'FatherPack',
  components: { childpack },
  data(){
      return(){
           myMsg:‘我是父組件參數’
       }
  },
  mothods:{
     showMessageFromChild(data){
        console.log(data);
  }

}
</script>
 
三、將一、二 一起使用就是可以實現父子組件互相傳值。

 

  知識點:props 、$emit()

參考來源: https://blog.csdn.net/github_37847992/article/details/78167337

vue文檔:http://doc.vue-js.com/v2/api/#vm-emit
https://cn.vuejs.org/v2/guide/components-props.html#Prop-類型
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM