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

打印 上一主题 下一主题

主题 725|帖子 725|积分 2175

一、前言

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

   配置别名路径可以在写代码时遐想提示路径
  1. {
  2.   "compilerOptions" : {
  3.     "baseUrl" : "./",
  4.     "paths" : {
  5.       "@/*":["src/*"]
  6.     }
  7.   }
  8. }
复制代码
三、elementPlus引入

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

   npm i elementPlus
npm install -D unplugin-vue-components unplugin-auto-import
  2. 配置自动按需导入

  1. // 引入插件
  2. import AutoImport from 'unplugin-auto-import/vite'
  3. import Components from 'unplugin-vue-components/vite'
  4. import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
  5. export default defineConfig({
  6.   plugins: [
  7.     // 配置插件
  8.     AutoImport({
  9.       resolvers: [ElementPlusResolver()],
  10.     }),
  11.     Components({
  12.       resolvers: [ElementPlusResolver()],
  13.     }),
  14.   ]
  15. })
复制代码
3. 测试组件

  1. <template>
  2.   <el-button type="primary">i am button</el-button>
  3. </template>
复制代码
四、定制elementPlus主题

1. 安装sass

   基于vite的项目默认不支持css预处理器,需要开发者单独安装  
     npm i sass -D
  2. 准备定制化的样式文件

 
  1. /* 只需要重写你需要的即可 */
  2. @forward 'element-plus/theme-chalk/src/common/var.scss' with (
  3.   $colors: (
  4.     'primary': (
  5.       // 主色
  6.       'base': #27ba9b,
  7.     ),
  8.     'success': (
  9.       // 成功色
  10.       'base': #1dc779,
  11.     ),
  12.     'warning': (
  13.       // 警告色
  14.       'base': #ffb302,
  15.     ),
  16.     'danger': (
  17.       // 危险色
  18.       'base': #e26237,
  19.     ),
  20.     'error': (
  21.       // 错误色
  22.       'base': #cf4444,
  23.     ),
  24.   )
  25. )
复制代码
3. 自动导入配置

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

  • 自动导入定制化样式文件进行样式覆盖
  • 按需定制主题配置 (需要安装 unplugin-element-plus)
   
  1. import { fileURLToPath, URL } from 'node:url'
  2. import { defineConfig } from 'vite'
  3. import vue from '@vitejs/plugin-vue'
  4. // 引入插件
  5. import AutoImport from 'unplugin-auto-import/vite'
  6. import Components from 'unplugin-vue-components/vite'
  7. // 导入对应包
  8. import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
  9. // https://vitejs.dev/config/
  10. export default defineConfig({
  11.   plugins: [
  12.     vue(),
  13.     // 配置插件
  14.     AutoImport({
  15.       resolvers: [ElementPlusResolver()],
  16.     }),
  17.     Components({
  18.       // 配置elementPlus采用sass样式配色系统
  19.       resolvers: [ElementPlusResolver({ importStyle: 'sass' })],
  20.     }),
  21.   ],
  22.   resolve: {
  23.     // 实际路径转换配置项
  24.     alias: {
  25.       '@': fileURLToPath(new URL('./src', import.meta.url))
  26.     }
  27.   },
  28.   css: {
  29.     preprocessorOptions: {
  30.       scss: {
  31.         // 自动导入定制化样式文件进行样式覆盖
  32.         additionalData: `
  33.           @use "@/styles/element/index.scss" as *;
  34.         `,
  35.       }
  36.     }
  37.   }
  38. })
复制代码
五、axios安装并简单封装

1. 安装axios

   npm i axios
  2. 根本配置

    
  官方文档地点:起步 | Axios Docs根本配置通常包罗:
  

  • 实例化 - baseURL + timeout
  • 拦截器 - 携带token 401拦截等
  1. import axios from 'axios'
  2. // 创建axios实例
  3. const http = axios.create({
  4.   baseURL: 'http://pcapi-xiaotuxian-front-devtest.itheima.net',
  5.   timeout: 5000
  6. })
  7. // axios请求拦截器
  8. http.interceptors.request.use(config => {
  9.   return config
  10. }, e => Promise.reject(e))
  11. // axios响应式拦截器
  12. http.interceptors.response.use(res => res.data, e => {
  13.   return Promise.reject(e)
  14. })
  15. export default http
复制代码
3. 封装哀求函数并测试

  1. import http from '@/utils/http'
  2. export function getCategoryAPI () {
  3.   return http({
  4.     url: 'home/category/head'
  5.   })
  6. }
复制代码
六、路由整体计划

    路由计划原则:找页面的切换方式,如果是整体切换,则为一级路由,如果是在一级路由的内部进行的内容切换,则为二级路由
  1. <template>
  2.   我是登录页
  3. </template>
  4. <template>
  5.   我是首页
  6. </template>
  7. <template>
  8.   我是home
  9. </template>
  10. <template>
  11.   我是分类
  12. </template>
  13. // createRouter:创建router实例对象
  14. // createWebHistory:创建history模式的路由
  15. import { createRouter, createWebHistory } from 'vue-router'
  16. import Login from '@/views/Login/index.vue'
  17. import Layout from '@/views/Layout/index.vue'
  18. import Home from '@/views/Home/index.vue'
  19. import Category from '@/views/Category/index.vue'
  20. const router = createRouter({
  21.   history: createWebHistory(import.meta.env.BASE_URL),
  22.   // path和component对应关系的位置
  23.   routes: [
  24.     {
  25.       path: '/',
  26.       component: Layout,
  27.       children: [
  28.         {
  29.           path: '',
  30.           component: Home
  31.         },
  32.         {
  33.           path: 'category',
  34.           component: Category
  35.         }
  36.       ]
  37.     },
  38.     {
  39.       path: '/login',
  40.       component: Login
  41.     }
  42.   ]
  43. })
  44. 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哀求以及实现动态路由等功能。
 


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

魏晓东

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表