<template>
<span ref="refData"></span>
</template>
<script>
import { CountUp } from "countup.js";
export default {
props: {
countNum: {
type: Number,
default: 0,
},
},
watch: {
$route: {
handler: function (val, oldVal) {
if (val.fullPath == "/index") {
setTimeout(() => {
this.initCountUp(this.countNum);
}, 800);
}
},
// 深度观察监听
deep: true,
},
countNum(val) {
this.initCountUp(val);
},
},
data() {
return {
numAnim: null,
};
},
mounted() {
this.initCountUp(this.countNum);
},
methods: {
initCountUp(num) {
this.numAnim = new CountUp(this.$refs.refData, num);
this.numAnim.start();
},
},
};
</script>
<vCountUp :countNum="homeData.xd.todo + homeData.xd.done"></vCountUp>
import vCountUp from "@/components/countUp/countUp.vue";
export default {
name: "index",
components: { vCountUp },