vue父組件向子組件動態傳值的兩種方法


在一些項目需求中需要父組件向子組件動態傳值,比如我這里的需求是,父組件動態通過axios獲取返回的圖片url數組然后傳給子組件,上傳圖片的子組件拿到該數組后進行遍歷並展示圖片,因為有時候獲取到的會是空,所以這里要考慮到動態獲取。

方法有兩種,

方法一:

props傳值,這里注意一個問題,傳過來的值需要用watch監聽並賦值,否則這里獲取到的是空數組

  父組件:

<uploadImg :width="200" :height="200" name="productImage" size="750px*750px" ref="productImage" :src-list="this.productImage"></uploadImg>
this.productImage=res.data.cover;

這里把通過后台返回的數組賦值給

this.productImage,然后把該數組傳給子組件定義的props屬性src-list
子組件:
watch:{
    srcList(curVal,oldVal){
     if(curVal){
       this.uploadImg=curVal;
      }
   },
}

然后子組件成功動態獲取到該數組

 

方法二:

通過ref屬性,父組件調用子組件的方法,把要傳的數組作為參數傳給子組件,子組件獲取該參數,並使用

父組件:

this.$refs.productImage.getSrcList(res.data.cover); 

子組件:

getSrcList(val){
    this.uploadImg=val;
}

 

同理,子組件向父組件傳值,如果是動態改變的,也要記得加watch函數,動態改變之后執行的操作寫在watch里,比如 this.$emit 的函數!

見子組件向父組件傳值


免責聲明!

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



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