如何再Vue3 + TS的项目中使用NProgress进度条

7 篇文章 0 订阅

 

本文主要介绍了详解如何在Vue3+TS的项目中使用NProgress进度条,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧!!!

 🍒前言

 NProgress是一个轻量级的进度条组件,虽然这个组件已经好久没有更新了,但是该组件的使用频率还是高的。

 🍒在项目中安装

 这里的包管理工具使用的npm,如果你使用的是yarn或者pnpm,请自行更改安装命令,安装命令如下:

npm i nprogress -S

因为我们是TS的项目,还需要安装其类型声明文件,命令如下:

npm i @types/nprogress -D

在使用时如下方式引入就行:

// 引入进度条

import nprogress from 'nprogress'

// 引入进度条样式

import 'nprogress/nprogress.css'

 🍒其实这个时候我们就可以用的,具体用法是在封装网络请求的时候可以使用或者是在路由跳转的时候使用,我的项目中是在网络请求(axios)中使用的。

import axios, { AxiosRequestConfig, AxiosResponse } from 'axios';

// 引入进度条
import nprogress from 'nprogress'
// 引入进度条样式
import 'nprogress/nprogress.css'

// 创建axios-实例
const requests = axios.create({
    baseURL: import.meta.env.VITE_APP_BASE_URL,
    timeout: 5000,
    headers: {......},
});

// 请求拦截
requests.interceptors.request.use((config) => {

    //开始加载-进度条开始
    nprogress.start();

    return config;
})

// 响应拦截
requests.interceptors.response.use((res) => {
    // 结束加载-进度条结束
    nprogress.done();

    // 请求成功
    return res;
}, (error) => {
    return Promise.reject(error)
})

export default requests;

🍒更改进度的颜色

 进度条有一个默认的颜色,当然我们也可以更改为我们的想要的颜色,具体操作如下:

在 依赖包 node_modules 中找到 nprogress中找到nprogress.css文件

 这样就行啦!!!

🍒简单封装

如果达不到自己的要求还可以自己进行封装

现在我们对NProgress进行一下简单的封装,首先我们在utils目录下创建要给nporgress.ts的文件,然后引入NProgress和CSS样式文件,示例代码如下:

import NProgress from 'nprogress'

import 'nprogress/nprogress.css'

然后我们对进度条进行一些基础配置,示例代码如下:

//全局进度条的配置

NProgress.configure({

  easing: 'ease', // 动画方式

  speed: 1000, // 递增进度条的速度

  showSpinner: false, // 是否显示加载ico

  trickleSpeed: 200, // 自动递增间隔

  minimum: 0.3, // 更改启动时使用的最小百分比

  parent: 'body', //指定进度条的父容器

})

 最后我们封装两个方法,一个是开始方法,一个是结束的方法,示例代码如下:

// 打开进度条

export const start = () => {

  NProgress.start()

}

// 关闭进度条

export const close = () => {

  NProgress.done()

}

 🍒在Vue切换路由时展示进度条

现在我们就来使用我们上面封装的Nprogress,这里我们在VueRouter的配置文件中使用,实现切换路由时在顶部展示进度条,首先我们打开VueRouter的配置文件,然后引入我们封装的Nprogress:

// router/index.ts

import { close, start } from '/@/utils/nprogress'

然后我们在创建的Router实例中使用这两个方法:

const router = createRouter({

  routes,

  history: createWebHistory(),

})

router.beforeEach((pre, next) => {

  start()

})

router.afterEach(() => {

  close()

})

  • beforeEach:路由切换之前触发;

  • afterEach:路由切换完成后触发;

现在我们切换路由就可以实现顶部进度条的切换。 

 

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Vue 3 + TypeScript项目使用,您可以按照以下步骤进行操作: 1. 安装Vue CLI:如果您还没有安装Vue CLI,可以使用以下命令进行安装: ``` npm install -g @vue/cli ``` 2. 创建项目使用Vue CLI创建一个新的Vue 3项目,可以运行以下命令: ``` vue create my-project ``` 3. 选择配置:在创建项目的过程,您将被提示选择一些配置选项。请确保选择TypeScript作为您的项目的语言。 4. 安装依赖:项目创建完成后,进入项目目录并安装依赖项。在命令行运行以下命令: ``` cd my-project npm install ``` 5. 创建Vue组件:现在,您可以开始在Vue 3 + TypeScript项目创建组件。打开 src 目录,并创建一个新的 .vue 文件,例如 `HelloWorld.vue`。 ```vue <template> <div> <h1>{{ greeting }}</h1> </div> </template> <script lang="ts"> import { defineComponent } from 'vue'; export default defineComponent({ data() { return { greeting: 'Hello, World!' }; } }); </script> ``` 6. 使用组件:在您的应用程序使用该组件,在 `App.vue` 导入并注册 `HelloWorld.vue` 组件。 ```vue <template> <div id="app"> <HelloWorld /> </div> </template> <script lang="ts"> import { defineComponent } from 'vue'; import HelloWorld from './components/HelloWorld.vue'; export default defineComponent({ name: 'App', components: { HelloWorld } }); </script> ``` 现在,您可以运行您的Vue 3 + TypeScript项目使用该组件了。运行以下命令启动开发服务器: ``` npm run serve ``` 这只是一个简单的示例,您可以根据自己的需求在项目使用更多的Vue组件和功能。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值