vue 2.x props code example

Example 1: props vue js

Vue.component('my-component', {
  props: {
    // Basic type check (`null` and `undefined` values will pass any type validation)
    propA: Number,
    // Multiple possible types
    propB: [String, Number],
    // Required string
    propC: {
      type: String,
      required: true
    },
    // Number with a default value
    propD: {
      type: Number,
      default: 100
    },
    // Object with a default value
    propE: {
      type: Object,
      // Object or array defaults must be returned from
      // a factory function
      default: function () {
        return { message: 'hello' }
      }
    },
    // Custom validator function
    propF: {
      validator: function (value) {
        // The value must match one of these strings
        return ['success', 'warning', 'danger'].indexOf(value) !== -1
      }
    }
  }
})

Example 2: vuejs does props factory function have access to vue instance

Vue.component('foo', {
  template: '<div>{{ num }}</div>',
  props: {
    func: {
      type: Number,
      default: () => this.a,
    },
  },
  data() {
    return { 
      num: this.func(),
      a: -22
    }
  }
})

new Vue({
  el: '#app',
});