Javascript 如何将cleave.js与Vue中的元素组合?

Javascript 如何将cleave.js与Vue中的元素组合?,javascript,vuejs2,element,cleave,Javascript,Vuejs2,Element,Cleave,我将Vue.js 2与元素一起使用,我想使用cleve.js进行掩蔽 我了解如何使用数据和计算属性在Vue中制作基本遮罩。然而,我不想重做克里夫所有的好工作 我还发现了vue克里夫。这似乎是将CLIVE与Vue结合使用的一种好方法。尽管vue将ads拆分为标准的输入元素。我正在使用Element,因此需要一种使用el输入的方法 这是大多数Vue屏蔽器的常见问题,它们似乎在页面中添加了标准的input元素 所以,我的问题是:当使用元素时,Vue集成Cleave.js的方式是什么 参考资料: 要素:

我将Vue.js 2与元素一起使用,我想使用cleve.js进行掩蔽

我了解如何使用数据和计算属性在Vue中制作基本遮罩。然而,我不想重做克里夫所有的好工作

我还发现了vue克里夫。这似乎是将CLIVE与Vue结合使用的一种好方法。尽管vue将ads拆分为标准的
输入
元素。我正在使用Element,因此需要一种使用
el输入的方法

这是大多数Vue屏蔽器的常见问题,它们似乎在页面中添加了标准的
input
元素

所以,我的问题是:当使用元素时,Vue集成Cleave.js的方式是什么

参考资料:

要素:

Cleave.js:

Vue CLIVE:

我发现了这篇文章:

这解释了如何在Vue中使用JQuery。我遵循该模式,将Vue与CLIVE集成如下:

SMARTCLIVE.vue

<template>
    <input />
</template>

<script>
/* eslint-disable no-new */
import Cleave from 'cleave.js'

export default {
  mounted () {
    new Cleave(this.$el, {
      date: true,
      datePattern: ['d', 'm', 'Y']
    })

    this.$el.oninput = (e) => {
      console.log('oninput the field', e.target.value)
      this.$emit('oninput', e.target.value)
    }
  }
}
</script>

/*eslint禁用无新*/
从“Cleave.js”导入Cleave
导出默认值{
挂载(){
新劈开(这个$el{
日期:对,
日期模式:['d','m','Y']
})
这.$el.oninput=(e)=>{
console.log('oninput the field',e.target.value)
此.emit('oninput',例如target.value)
}
}
}
App.vue

<template>
  <div id="app">
    <smart-cleave @oninput="logIt"></smart-cleave>
    <div>{{date}}</div>
  </div>
</template>

<script>

/* eslint-disable no-new */
import Cleave from 'cleave.js'
import SmartCleave from './components/SmartCleave'

new Cleave('#plain-input', {
  date: true,
  datePattern: ['d', 'm', 'Y']
})

export default {
  name: 'app',
  components: {
    SmartCleave
  },
  data () {
    return {
      date: ''
    }
  },
  methods: {
    logIt (val) {
      console.log('cahnged', val)
      this.date = val
    }
  }
}
</script>

<style>
#app {
  font-family: 'Avenir', Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  /* text-align: center; */
  color: #2c3e50;
  margin-top: 60px;
}
</style>

{{date}}
/*eslint禁用无新*/
从“Cleave.js”导入Cleave
从“./components/SmartCleave”导入SmartCleave
新劈开(“#普通输入”{
日期:对,
日期模式:['d','m','Y']
})
导出默认值{
名称:“应用程序”,
组成部分:{
智能劈开
},
数据(){
返回{
日期:''
}
},
方法:{
洛吉特(瓦尔){
console.log('cahnged',val)
this.date=val
}
}
}
#应用程序{
字体系列:“Avenir”、Helvetica、Arial、无衬线字体;
-webkit字体平滑:抗锯齿;
-moz osx字体平滑:灰度;
/*文本对齐:居中*/
颜色:#2c3e50;
边缘顶部:60像素;
}