<!-- 單一型別驗證、多型別驗證、必要值檢查、預設值檢查、自訂函式&自訂驗證  -->
<div id="app">
  <div class="p-5">
    <props-validation 
        :prop-a="fun"
        prop-c="required"
        :prop-f="10000"
        >
    </props-validation>
  </div>
</div>
const app = Vue.createApp({
  data() {
    return {
      fun: () => {
        return "a";
      }
    };
  }
});
app.component('props-validation', {
  props: {
    // 單一型別檢查,可接受的型別 String, Number, Object, Boolean, Function(在 Vue 中可使用 Function 驗證型別)
    // null, undefined 會直接通過驗證
    propA: Function,

    // 多個型別檢查
    propB: [String, Number],

    // 必要值
    propC: {
      type: String,
      required: true,
    },

    // 預設值
    propD: {
      type: Number,
      default: 300
    },

    // 自訂函式
    propE: {
      type: Object,
      default() {
        return {
          money: 300
        }
      }
    },

    // 自訂驗證
    propF: {
      validator(value) {
        return value > 1000
      }
    },
  },
  template: `
  {{propA}},<br>
  {{propC}},<br>
  {{propD}} / {{typeof propD}},<br><br>
  {{propE}},<br>
  {{propF}},`
})
app.mount("#app");
Run Pen

External CSS

  1. https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.0.2/css/bootstrap.min.css

External JavaScript

  1. https://cdnjs.cloudflare.com/ajax/libs/vue/3.2.37/vue.global.prod.min.js