Vue.js component for cleave.js


  • Reactive v-model value
    • You can change input value programmatically
  • Reactive options
    • You can change config options dynamically
    • Component will watch for any changes and redraw itself
    • You are suggested to modify config via Vue.set
  • Compatible with Bootstrap, Bulma or any other CSS framework
  • Option to disable raw mode to get masked value


# npm
npm install vue-cleave-component --save

# Yarn
yarn add vue-cleave-component


    <cleave v-model="cardNumber" :options="options" class="form-control" name="card"></cleave>

  import Cleave from 'vue-cleave-component';
  export default {    
    data () {
      return {
        cardNumber: null, 
        options: {
          creditCard: true,
          delimiter: '-',
    components: {

As plugin

  import Vue from 'vue';
  import Cleave from 'vue-cleave-component';

This will register a global component <cleave>

Available props

The component accepts these props:

Attribute Type Default Description
v-model / value String / Number / null null Set or Get input value (required)
options Object {} Cleave.js options
raw Boolean true When set to false; emits formatted value with format pattern and delimiter
type String text Set input type; for eg: tel

Install in non-module environments (without webpack)

  • Include required files
<!-- cleave.js -->
<script src=""></script>
<!-- Vue.js -->
<script src="[email protected]/dist/vue.min.js"></script>
<!-- Lastly add this package -->
<script src=""></script>
  • Use the component anywhere in your app like this
<main id="app">  
    <cleave v-model="card" :options="options"></cleave> 
  // Initialize global component
  new Vue({
    el: '#app',
    data: {
      card: null,
      options: {
        creditCard: true,

Run examples on your localhost

  • Clone this repo
  • You should have node-js >=6.10 and yarn >=1.x pre-installed
  • Install dependencies yarn install
  • Run webpack dev server yarn start
  • This should open the demo page at http://localhost:9000 in your default web browser