vue3添加页面进度条

首先
npm i nprogress

其次在main.js中引入
import NProgress from 'nprogress'

import 'nprogress/nprogress.css'

然后在路由配置文件中添加
router.beforeEach((to, from, next) => { // 开启进度条 NProgress.start() next() })
router.afterEach(() => { // 关闭进度条 NProgress.done() })

要在`app.vue`页面添加进度条,你可以使用Vue.js提供的`<transition>`组件和`<progress>`组件。 下面是一个简单的示例代码: ```html <template> <div id="app"> <!-- 进度条 --> <transition name="fade"> <progress v-show="isLoading" class="progress" :value="progress" max="100"></progress> </transition> <!-- 页面内容 --> <router-view></router-view> </div> </template> <script> export default { data() { return { isLoading: false, // 是否显示进度条 progress: 0 // 进度条进度(0-100) }; }, methods: { startLoading() { // 显示进度条 this.isLoading = true; // 进度条进度从0开始 this.progress = 0; // 模拟加载过程 let interval = setInterval(() => { if (this.progress < 100) { this.progress += 10; // 每次增加10% } else { // 加载完成,隐藏进度条 clearInterval(interval); this.isLoading = false; } }, 500); } }, mounted() { // 监听路由变化,开始加载页面时显示进度条 this.$router.beforeEach((to, from, next) => { this.startLoading(); next(); }); } }; </script> <style> /* 进度条样式 */ .progress { position: fixed; top: 0; left: 0; width: 100%; height: 5px; background-color: #eee; z-index: 9999; } /* 进度条动画 */ .fade-enter-active, .fade-leave-active { transition: width 0.5s ease; } .fade-enter, .fade-leave-to { width: 0%; } </style> ``` 在这个示例中,我们使用了`<transition>`组件和`<progress>`组件来实现进度条。在`data`中定义了两个变量`isLoading`和`progress`,分别表示是否显示进度条进度条的进度。在`startLoading`方法中,我们使用了`setInterval`来模拟加载过程,每次增加10%的进度,当进度达到100%时,隐藏进度条。在`mounted`生命周期中,我们使用了`$router.beforeEach`来监听路由变化,当页面开始加载时,调用`startLoading`方法显示进度条。 最后,我们使用了一些简单的CSS样式来美化进度条,并实现了进度条的动画效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值