[Vue.js] 筆記 - 從父元素傳遞Prop給組件 & Prop的驗證

從父元素傳遞Prop給組件 & Prop的驗證

從父元素傳遞Props給組件

1.在組件定義props陣列

new Vue({
  el:"#app",
  data:{
    value:"Value"
  },
  components:{
    test:{
      props:["name","value"],
      template:`
        <div>{{text}} {{name}} {{value}}</div>
      `,
      data(){
        return {
          text:"Text"
        };
      }
    }
  }
});

2.在組件定義props的物件

  • 指定型別
  • 指定default值(也可以是方法)
new Vue({
  el:"#app",
  data:{
    value:123
  },
  components:{
    test:{
      props:{
        name : String,
        value : {
          type: Number,
          default: 1
        },
        value2 : {
          tyep: Number,
          default: () => 1
        }
      },
      template:`
        <div>{{text}} {{name}} {{value}}</div>
      `,
      data(){
        return {
          text:"Text"
        };
      }
    }
  }
});

Props的驗證

1.加上 validator

  • 必須載入 vue.js才有錯誤訊息(vue.min.js則無)
new Vue({
  el:"#app",
  data:{
    value:123
  },
  components:{
    test:{
      props:{
        value : {
          type: Number,
          default: 1,
          validator(val){
            return val > 10
          }
        },
      },
      template:`
        <div>{{value}}</div>
      `,
      data(){
        return {
          text:"Text"
        };
      }
    }
  }
});