vue
vue3+vite自动化注册全局组件
vue3加载远程组件
Vue Vine 编写 Vue 的另一种风格
Vueuse 实现数字滚动 Count-to
学会这几个常用功能,给你的 vue3 项目加点餐!
为什么有些 Vue3 项目已经开始弃用 Pinia 了?
Vue3 的 5 个组合式 API 方法
Vue3+TS+canvas 项目预览图片时,添加水印,浏览器禁止右键功能、前端禁止直接获取图片地址
Vue3.x 生态最能打的组合!
vue2封装常用工具类
使用 v-once 和 v-memo 进行 Vue 渲染优化
基于 Vue + Element plus + Node 实现大文件分片上传,断点续传和秒传的功能!
Vue中的$attrs和$listeners对象有什么作用?
本文档使用 MrDoc 发布
-
+
首页
Vueuse 实现数字滚动 Count-to
 element-plus的 `Statistic` 统计组件也有数字滚动的效果,其实就是用vueuse的`useTransition` useTransition 文档地址:https://vueuse.org/core/useTransition/#usetransition vueuse 确实是个宝藏库,在此强烈推荐。 ~~~bash npm i @vueuse/core ~~~ 组件具有3 个参数: - num: 显示的数字 - duration: 动画持续时间,默认 1000 - precision: 数字精度,默认 0 ```vue <MoCountTo :num="198" /> <MoCountTo :num="198" :duration="2000" :precision="2" /> ``` ## MoCountTo组件代码 组件代码的实现很简单,如下: ```vue <template> <span> {{ formattedOutputValue }}</span> </template> <script setup lang="ts"> import { ref, watch, nextTick, computed } from 'vue' import { useTransition } from '@vueuse/core' interface Props { num: number duration?: number precision?: number // 数字精度 } const props = defineProps<Props>() const source = ref(0) let outputValue = useTransition(source, { duration: props.duration || 1000 }) const precision = ref( props.precision !== undefined && Number.isInteger(props.precision) ? props.precision : 0 ) const formattedOutputValue = computed(() => outputValue.value.toFixed(precision.value)) watch( () => props.num, async (newVal) => { if (Number.isNaN(newVal)) { console.warn('Invalid number provided, defaulting to 0.') newVal = 0 } await nextTick() source.value = newVal }, { immediate: true } ) </script> ``` ## 项目地址 本项目GIT地址:https://github.com/lucidity99/mocha-vue3-system
admin
2024年7月15日 15:59
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码