vue父組件向子組件傳值——props


父組件向子組件傳值用props

 

使用:

1.js里import引入子組件:
import cpn from '子組件路徑' 2.js的components添加上cpn components: { cnp }, 3.頁面使用: <cpn></cpn>

1.父組件(
向子組件傳值:
<cpn :cmovies="movies" :cmsg="msg" />

<script>
 
  import cpn from '子組件路徑'
 
 
export default {
  name: '頁面名',
  components: {
    cpn
  },
  data() {
    return {
   movies:[{id:'001',lable:'戰狼'},{id:'002',lable:'紅海行動'},{id:'003',lable:'綠巨人'},{id:'004',lable:'舉起手來'}],
   msg:'你好,這是要向組件傳過去的數據'
  }
 }
</script>

 

2.子組件頁面接收:

 
        
<template>
  <div>
  <div class="title">{{cmsg}}<div>   <div>   <ul>   <li v-for="item in cmovies" :key="item.id"> {{ item.label }}    </li>   </ul>   </div>
  </div> </template>

<script>  
 export default {
    name: '頁面名',   
   // 接受父組件傳遞的值
    props: {
       cmovies: {
        type: Array,,
        default() {
          return []
        }
      },
    cmsg: {
      type: String,
      default:'接收數據時給定一個默認值'    
    }
    },
 }
</script>

 
        

父子組件上下紅色部分對應

 

props接收傳過來的值有三種接收方式:

第一種:直接接收

props:['cmovies']

 

第二種:指定類型

props:{    
    cmovies:Array,
    cmsg:String
}

 

第三種:設定默認值和必須傳——類型是對象或數組時,默認值必須是函數

props: {
  cmovies: {
    type: Array,,
    default() {
      return []
    },
    require:true
  },
 cmsg: {
  type: String,
  default:'接收數據時給定一個默認值'    
 }
},

 

驗證都支持以下數據類型:String  Number  Boolean  Array  Object  Date  Function  Symbol

當有自定義構造函數時,驗證也支持自定義的類型

props:{
    // 基礎的類型檢查(‘null’匹配任何類型)
    propA:Number,
    // 多個可能的類型
    propsB: [String,Number],
    // 必須的字符串
    propC: {
        type:String,
        required:true
    },
    // 有默認值的數字
    propD:{
        type:Number,
        default:100
    },
    // 有默認值的對象
    propE:{
        type:Object,
        // 對象或數組默認值必須從一個工廠函數獲取
        default:function(){
            return {message:'hello'}
        }
    },
    // 自定義驗證函數
    propF:{
        validator: function(value){
            // 這個必須匹配下列字符串中的一個
            return:['success','warning','danger'],indexof(value) !== -1
        }
}

 

 

 補充,當傳過去的值需要駝峰命名時:

父:
<cpn :c-movies="movies" :c-msg="msg" />

 子:

props: {
     cMovies: {
       type: Array,,
       default() {
         return []
       }
   },
  cMsg: {
     type: String,
     default:'接收數據時給定一個默認值'    
   }
},

 

 

 

 


免責聲明!

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



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