## 背景:
之前使用vue2开发项目时,使用了cron组件,比较了两种组件的使用效果。现在需要把原有的vue2项目升级为vue3,需要对应的cron组件。
方案一,vue3-cron-plus
具体实现:
- 安装插件
npm install vue3-cron-plus -S
- vue文件使用实例:
<template><div><el-input class="elInput" v-model="cronValue" @click="openDialog" :clearable="true" placeholder="请输入正确的cron表达式"></el-input><el-dialog v-model="showCron"><vue3CronPlus@change="changeCron"@close="closeDialog"max-height="600px"i18n="cn"></vue3CronPlus></el-dialog></div> </template><script> import { vue3CronPlus } from 'vue3-cron-plus' import 'vue3-cron-plus/dist/index.css' // 引入样式 export default {name : "DemoCompare",components: { "vue3CronPlus":vue3CronPlus },data () {return{cronValue:"",showCron:"",}},methods : {openDialog () {this.showCron = true;},closeDialog(){this.showCron = false;},changeCron(cronValue){if (typeof (cronValue) == "string") {this.cronValue = cronValue;}}} } </script><style scoped></style>
方案二,no-vue3-cron
具体实现:
- 安装插件
npm install no-vue3-cron -S
- vue文件使用实例:
<template><div><el-input class="elInput" v-model="cronValue" @click="openDialog" :clearable="true" placeholder="请输入正确的cron表达式"></el-input><el-dialog v-model="showCron"><noVue3Cron:cron-value="cronValue"@change="changeCron"@close="closeDialog"max-height="600px"i18n="cn"></noVue3Cron></el-dialog></div> </template><script> //局部引入 import { noVue3Cron } from 'no-vue3-cron' import 'no-vue3-cron/lib/noVue3Cron.css' // 引入样式 export default {name : "DemoCompareShow",components: { "noVue3Cron":noVue3Cron },data () {return{cronValue:"",showCron:"",expression:"* * * * * * *"}},methods : {openDialog () {this.showCron = true;if (this.cronValue != "") {this.expression = this.cronValue}},closeDialog(){this.showCron = false;},changeCron(cronValue){if (typeof (cronValue) == "string") {this.cronValue = cronValue;}}} } </script><style scoped></style>
方案三,vue3-cron-plus-picker
具体实现:
- 安装插件
npm install vue3-cron-plus-picker -S
- vue文件使用实例:
<template><div><el-input class="elInput" v-model="cronValue" @click="openDialog" :clearable="true" placeholder="请输入正确的cron表达式"></el-input><el-dialog v-model="showCron"><Vue3CronPlusPicker @hide="closeDialog" @fill="fillValue" :expression="expression"/></el-dialog></div> </template><script > import 'vue3-cron-plus-picker/style.css' import {Vue3CronPlusPicker} from 'vue3-cron-plus-picker'export default {name : "demoShow",components : {"Vue3CronPlusPicker":Vue3CronPlusPicker,},data () {return{cronValue:"",showCron:"",expression:"* * * * * * *"}},methods : {openDialog () {this.showCron = true;if (this.cronValue != ""){this.expression = this.cronValue}},closeDialog(){this.showCron = false;},fillValue(cronValue){this.cronValue = cronValue;}} } </script><style lang="scss" scoped> </style>
对比:
- 都可以从组件中获取cron的表达式
vue3-cron-plus
组件不能根据cron表达式回显到组件vue3-cron-plus-picker
组件可以看到将来执行任务的具体时间,推荐使用