Vue3中element-Plus、Axios、router相关配置

一、前言

   随着前端技术的不断发展,Vue3已经成为许多开发者首选的前端框架之一。它的出现带来了更快的速度、更高的性能和更强的功能。而Element Plus、Axios和Vue Router则是Vue生态系统中最受欢迎的几个插件,它们分别提供了丰富的UI组件库、便捷的HTTP客户端和服务端通信解决方案以及强大的路由管理系统。本文旨在介绍如何在Vue3项目中配置和使用这些插件,帮助读者更好地理解和掌握Vue3生态中的重要组成部分。
 

二、jsconfig.json配置别名路径

配置别名路径可以在写代码时联想提示路径

{
  "compilerOptions" : {
    "baseUrl" : "./",
    "paths" : {
      "@/*":["src/*"]
    }
  }
}

三、elementPlus引入

1. 安装elementPlus和自动导入插件

npm i elementPlus
npm install -D unplugin-vue-components unplugin-auto-import

2. 配置自动按需导入

// 引入插件
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'


export default defineConfig({
  plugins: [
    // 配置插件
    AutoImport({
      resolvers: [ElementPlusResolver()],
    }),
    Components({
      resolvers: [ElementPlusResolver()],
    }),
  ]
})

3. 测试组件

<template>
  <el-button type="primary">i am button</el-button>
</template>

四、定制elementPlus主题

1. 安装sass

基于vite的项目默认不支持css预处理器,需要开发者单独安装

 npm i sass -D

2. 准备定制化的样式文件

/* 只需要重写你需要的即可 */
@forward 'element-plus/theme-chalk/src/common/var.scss' with (
  $colors: (
    'primary': (
      // 主色
      'base': #27ba9b,
    ),
    'success': (
      // 成功色
      'base': #1dc779,
    ),
    'warning': (
      // 警告色
      'base': #ffb302,
    ),
    'danger': (
      // 危险色
      'base': #e26237,
    ),
    'error': (
      // 错误色
      'base': #cf4444,
    ),
  )
)

3. 自动导入配置

这里自动导入需要深入到elementPlus的组件中,按照官方的配置文档来

  1. 自动导入定制化样式文件进行样式覆盖

  2. 按需定制主题配置 (需要安装 unplugin-element-plus)

import { fileURLToPath, URL } from 'node:url'
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
// 引入插件
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
// 导入对应包
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
    vue(),
    // 配置插件
    AutoImport({
      resolvers: [ElementPlusResolver()],
    }),
    Components({
      // 配置elementPlus采用sass样式配色系统
      resolvers: [ElementPlusResolver({ importStyle: 'sass' })],
    }),
  ],
  resolve: {
    // 实际路径转换配置项
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url))
    }
  },
  css: {
    preprocessorOptions: {
      scss: {
        // 自动导入定制化样式文件进行样式覆盖
        additionalData: `
          @use "@/styles/element/index.scss" as *;
        `,
      }
    }
  }
})

五、axios安装并简单封装

1. 安装axios

npm i axios

2. 基础配置

官方文档地址:起步 | Axios Docs基础配置通常包括:

  1. 实例化 - baseURL + timeout

  2. 拦截器 - 携带token 401拦截等

import axios from 'axios'

// 创建axios实例
const http = axios.create({
  baseURL: 'http://pcapi-xiaotuxian-front-devtest.itheima.net',
  timeout: 5000
})

// axios请求拦截器
http.interceptors.request.use(config => {
  return config
}, e => Promise.reject(e))

// axios响应式拦截器
http.interceptors.response.use(res => res.data, e => {
  return Promise.reject(e)
})


export default http

3. 封装请求函数并测试

import http from '@/utils/http'

export function getCategoryAPI () {
  return http({
    url: 'home/category/head'
  })
}

六、路由整体设计

 路由设计原则:找页面的切换方式,如果是整体切换,则为一级路由,如果是在一级路由的内部进行的内容切换,则为二级路由

<template>
  我是登录页
</template>

<template>
  我是首页
</template>

<template>
  我是home
</template>

<template>
  我是分类
</template>


// createRouter:创建router实例对象
// createWebHistory:创建history模式的路由

import { createRouter, createWebHistory } from 'vue-router'
import Login from '@/views/Login/index.vue'
import Layout from '@/views/Layout/index.vue'
import Home from '@/views/Home/index.vue'
import Category from '@/views/Category/index.vue'

const router = createRouter({
  history: createWebHistory(import.meta.env.BASE_URL),
  // path和component对应关系的位置
  routes: [
    {
      path: '/',
      component: Layout,
      children: [
        {
          path: '',
          component: Home
        },
        {
          path: 'category',
          component: Category
        }
      ]
    },
    {
      path: '/login',
      component: Login
    }
  ]
})

export default router

七、总结

    Vue3以其全新的Composition API、响应式系统和其他特性,极大地提升了开发效率和用户体验。然而,要构建一个完整的Web应用,还需要依赖其他优秀的第三方库来提供额外的支持。Element Plus是一款基于Vue3的高质量UI组件库,它继承了Element UI的优点,并针对Vue3进行了优化。Axios则是一款轻量级的JavaScript库,用于发送HTTP请求,具有跨浏览器兼容性好、API接口友好等特点。Vue Router是Vue官方推荐的路由管理器,可以帮助我们实现单页面应用的导航控制和视图切换。

   本篇文章详细讲解如何在Vue3项目中引入和配置Element Plus、Axios和Vue Router,以及如何利用它们来增强我们的应用功能。我们将探讨如何设置主题、自定义组件、处理HTTP请求以及实现动态路由等功能。

猜你喜欢

转载自blog.csdn.net/weixin_74457498/article/details/143138782