vue-coerce-props

Coerce props to custom values
704,108 72
Install
npm install vue-coerce-props
Latest Version:1.0.0
Vue:2
License:MIT
Last Updated:Sep 27, 2021
Links: GitHub  ·  npm
Maintainer: posva

VueCoerceProps Build Status npm package coverage thanks Greenkeeper badge

Transform/Coerce props values to whatever you want

Installation

npm install vue-coerce-props

Install the mixin globally or locally:

// main.js
import CoercePropsMixin from 'vue-coerce-props'

Vue.mixin(CoercePropsMixin)
// MyComponent.vue
import CoercePropsMixin from 'vue-coerce-props'

export default {
  // other options
  mixins: [CoercePropsMixin],
}

Usage

To coerce a prop, add a coerce function to any prop:

const SpaceTrimmer = {
  props: {
    text: {
      type: String,
      // this function is called by VueCoerceProps
      coerce: text => text.trim(),
    },
    style: {
      type: String,
      coerce(style) {
        // you can access the context as in a computed property
        // NEVER use this.$coerced here as it would create an infinite loop
        // if you use things coming from data, you may consider using
        // a computed property instead
        return this.possibleValues.includes(style) ? style : 'default'
      },
    },
  },
}

VueCoerceProps will inject a computed property named $coerced containing every single coerced prop:

<p>
  <span>Original value: {{ text }}</span>
  <span>Coerced value: {{ $coerced.text }}</span>
</p>

FAQ

  • Q: Why not passing component props as second argument? A: That would make every coerce value depend on every prop. At the end $coerced is just a computed property

License

MIT

Related Packages

vue-types

Prop types utility for Vue

9,212,631 583
nrailsvue

前端组件库,包括vue组件扩展

13,861
vue-sanitize-directive

Vue directive for HTML sanitization.

140,135 12
@znck/prop-types

Fluent prop validation for Vue

20,852
wxv-transformer

transformer for weex vue binding styles.

14,263

Version History

Version Released License
1.0.0 MIT
0.0.2 MIT
0.0.1 MIT
0.0.0 MIT