自定义道具类型Vue.js

时间:2018-11-01 05:54:20

标签: javascript vue.js vuejs2 vue-component

是否可以为Vue.js道具创建自定义道具类型(并通过验证对其进行扩展)?

在下面的示例中,您将找到对象道具background。我想要一个自定义的道具类型Image而不是Object。 图片将检查srcalt是否已填充,其余部分是可选的。

我们现在所拥有的:

export default {
  props: {
    background: {
      type: Object,
      src: String,
      srcset: String,
      alt: String,
      title: String,
    },
  },
};

我想要拥有的东西:

class customPropImage {
  // magic ...
}

export default {
  props: {
    background: Image,
  },
};

1 个答案:

答案 0 :(得分:6)

当然可以。根据{{​​3}},您可以将类型设置为自定义类型的构造函数。通过自定义验证,它看起来可能像这样:

function CustomImage () {
  // Magic
}

Vue.component('blog-post', {
  props: {
    myImage: {
      type: CustomImage,
      validator: function (value) {
        return true; // or false based on value of myImage
      }
    }
  }
})

这里是Vue documentation