vue3项目中的常用插件

vue3项目中的常用插件

1、路由组件

npm install vue-router@4

路由配置

import { createWebHashHistory, createRouter } from "vue-router";
//引入主布局
import Admin from "@/pages/layout/admin.vue";
import Index from "@/pages/index/index.vue";
import NotFound from "@/pages/error/404.vue";
import Login from "@/pages/login/index.vue"const routes = [{path:'/',component:Admin,children:[{path: "/",component: Index,meta:{title:'后台首页'}},]},{path:'/login',component:Login,meta:{title:'登录'}},{path: "/:pathMatch(.*)*",name: "NotFound",component: NotFound,},
];const router = createRouter({history: createWebHashHistory(),routes,
});export  {router}

路由守卫

import { getCookie } from "@/utils";
import { router } from "@/router";
import { store } from "@/store";
import { showLoading,hiddenLoading } from "@/utils";//全局前置守卫
router.beforeEach(async (to, from, next) => {showLoading()const token = getCookie("token");// 如果token不存在 且路径不是loginif (!token && to.path != "/login") {return next({ path: "/login" });}// 如果token存在 路径为loginif (token && to.path == "/login") {return next({path: from.path ? from.path : "/",});}if (token) {// console.log('token is success')await store.dispatch('getUserInfo')// store.dispatch('getUseInfo')}//获取页面的title// const { title } = to.metalet title = (to.meta.title ? to.meta.title : "" ) + "-这里是标题" // console.log(title)// 设置页面的titledocument.title = title// console.log(to.meta)next();});
// 全局后置守卫
router.afterEach((to, from) => {hiddenLoading()
})

2、vuex 用来全局状态共享

npm install vuex@next --save

vuex的配置

import { createStore } from "vuex";
import { getInfo } from "@/api/manager";
export const store = createStore({state:{userInfo: { },},mutations: {// 修改state的值需要使用mutations里边的方法// 后期使用的时候 第一个参数为方法名  第二个参数为数据setUserInfo(state, userInfo) {state.userInfo = userInfo;},},actions:{getUserInfo({commit}){return new Promise((resolve,reject)=>{getInfo().then(res=>{commit('setUserInfo',res.data)resolve(res)}).catch(error=>reject(error))})},logout({commit}){commit('setUserInfo',{})}}
});

3、vuex的数据持久化

npm i vuex-persistedstate

配置

import { createStore } from "vuex"
... //导入模块
import createPersistedstate from "vuex-persistedstate" //引入本地化插件
const store  = createStore({modules:{......},plugins:[createPersistedstate({key:'',//本地存储的名字//需要持久化模块paths:["demo1","demo2",]})]
)

4、使用cookie

npm i @vueuse/core
npm i @vueuse/integrations
npm i universal-cookie

使用

import {useCookie} from "@vueuse/integrations/useCookies"const cookie = useCookies()
// get set remove

5、https请求 axios

npm install axios --save

axios配置

import axios from "axios"const service = axios.create({baseUrl:'',timeoute:2000,...
})//拦截器
// 添加请求拦截器
service.request.use(function (config) {// 在发送请求之前做些什么// 举例 添加头部const token = '' //从cookie或者其他地方获取if(token){config.headers.token = token// config.headers['token'] = token 推荐}return config;}, function (error) {// 对请求错误做些什么return Promise.reject(error);});// 添加响应拦截器
service.response.use(function (response) {// 对响应数据做点什么return response;}, function (error) {//获取响应码const status = error.reponse.statusif(status == 401){// 一般情况为未授权 执行未授权的逻辑 // 给出提示或者直接跳转到登录页面 router.push('/login') //假设已经引入路由}else if(status == ...){....}else{....}// 对响应错误做点什么return Promise.reject(error);});

6. loading插件

npm install nprogress

nprogress 配置

import nprogress from "nprogress"
// 启用loading
nprogress.start()
// 结束loading
nprogress.done()

其余插件为UI库,代码规范,代码检查,CSS预处理器等

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/60902.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode Hot100 15.三数之和

题干: 思路: 首先想到的是哈希表,类似于两数之和的想法,共两层循环,将遍历到的第一个元素和第二个元素存入哈希表中,然后按条件找第三个元素,但是这道题有去重的要求,哈希表实现较为…

html + css 自适应首页布局案例

文章目录 前言一、组成二、代码1. css 样式2. body 内容3.全部整体 三、效果 前言 一个自适应的html布局 一、组成 整体居中&#xff0c;宽度1200px&#xff0c;小屏幕宽度100% 二、代码 1. css 样式 代码如下&#xff08;示例&#xff09;&#xff1a; <style>* {…

使用Axios函数库进行网络请求的使用指南

目录 前言1. 什么是Axios2. Axios的引入方式2.1 通过CDN直接引入2.2 在模块化项目中引入 3. 使用Axios发送请求3.1 GET请求3.2 POST请求 4. Axios请求方式别名5. 使用Axios创建实例5.1 创建Axios实例5.2 使用实例发送请求 6. 使用async/await简化异步请求6.1 获取所有文章数据6…

MySQL —— MySQL索引介绍、索引数据结构、聚集索引和辅助索引、索引覆盖

文章目录 索引概念索引分类索引数据结构种类Innodb 索引数据结构聚集索引和辅助索引&#xff08;非聚集索引&#xff09;聚集索引辅助索引&#xff08;非聚集索引&#xff09; 索引覆盖 索引概念 索引是对数据库表中一列或多列的值进行排序后的一种数据结构。用于帮助 mysql 提…

python实现十进制转换二进制,tkinter界面

目录 需求 效果 代码实现 代码解释 需求 python实现十进制转换二进制 效果 代码实现 import tkinter as tk from tkinter import messageboxdef convert_to_binary():try:# 获取输入框中的十进制数decimal_number int(entry.get())# 转换为二进制binary_number bin(de…

机器学习—正则化和偏差或方差

正则化参数的选择对偏差和方差的影响 用一个四阶多项式&#xff0c;要用正则化拟合这个模型&#xff0c;这里的lambda的值是正则化参数&#xff0c;它控制着你交易的金额&#xff0c;保持参数w与训练数据拟合&#xff0c;从将lambda设置为非常大的值的示例开始&#xff0c;例如…

在Node.js中如何使用TypeScript

第一步&#xff1a;创建一个Node.js项目的package.json文件 npm init -y第二步&#xff1a;添加TypeScript、添加node.d.ts npm install typescript -D npm install types/node -D第三步&#xff1a;初始化一个tsconfig.json文件 npx tsc --init --rootDir src --outDir lib…

零基础Java第十九期:认识String(一)

目录 一、String的重要性 二、String的常用方法 2.1. 字符串构造 2.2. String对象的比较 2.3. 字符串查找 2.4. 转化 2.4. 字符串替换 2.5. 字符串拆分 2.6. 字符串截取 一、String的重要性 在C语言中已经涉及到字符串了&#xff0c;但是在C语言中要表示字符串只能…

面试经典 150 题:20、2、228、122

20. 有效的括号 参考代码 #include <stack>class Solution { public:bool isValid(string s) {if(s.size() < 2){ //特判&#xff1a;空字符串和一个字符的情况return false;}bool flag true;stack<char> st; //栈for(int i0; i<s.size(); i){if(s[i] ( |…

【SpringBoot】公共字段自动填充

问题引入 JavaEE开发的时候&#xff0c;新增字段&#xff0c;修改字段大都会涉及到创建时间(createTime)&#xff0c;更改时间(updateTime)&#xff0c;创建人(craeteUser)&#xff0c;更改人(updateUser)&#xff0c;如果每次都要自己去setter()&#xff0c;会比较麻烦&#…

深度学习-卷积神经网络CNN

案例-图像分类 网络结构: 卷积BN激活池化 数据集介绍 CIFAR-10数据集5万张训练图像、1万张测试图像、10个类别、每个类别有6k个图像&#xff0c;图像大小32323。下图列举了10个类&#xff0c;每一类随机展示了10张图片&#xff1a; 特征图计算 在卷积层和池化层结束后, 将特征…

stm32——通用定时器时钟知识点

&#xff08;该图来自小破站 铁头山羊老师的stm32标准库教学&#xff09;

SobarQube实现PDF报告导出

文章目录 前言一、插件配置二、使用步骤1.新生成一个Token2.将拷贝的Token加到上文中执行的命令中3.查看报告 三、友情提示总结 前言 这篇博文是承接此文 .Net项目在Windows中使用sonarqube进行代码质量扫描的详细操作配置 描述如何导出PDF报告 众所周知&#xff0c;导出PDF功…

【数据结构】10.线索二叉树

一、线索二叉树的产生 采用先序、中序、后序三种方法遍历二叉树后都可以得到一个线性序列&#xff0c;序列上的每一个结点&#xff08;除了第一个和最后一个&#xff09;都有一个前驱和一个后继&#xff0c;但是&#xff0c;这个线性序列只是逻辑的概念&#xff0c;不是物理结…

如何合理设计一套springcloud+springboot项目中的各个微服务模块之间的继承关系的最优方案

文章目录 一、模块化设计所遵循的原则二、项目架构设计三、各个模块作用说明3.1 core 模块3.2 common 模块3.3 generatorcode模块3.4 business 模块3.5 web 模块3.6 admin 模块3.7 父pom 四、采用import引入SpringBoot 在springcloud微服务项目中经常用到多模块化的架构设计&am…

HarmonyOS4+NEXT星河版入门与项目实战--------开发工具与环境准备

文章目录 1、熟悉鸿蒙官网1、打开官网2、下载 DevEco Studio3、HarmonyOS 资源库4、开发指南与API 2、安装 DevEco Studio1、软件安装2、配置开发工具 1、熟悉鸿蒙官网 1、打开官网 百度搜索 鸿蒙开发者官网 点击进入开发者官网&#xff0c;点击开发&#xff0c;可以看到各种…

单元测试、集成测试、系统测试、验收测试、压力测试、性能测试、安全性测试、兼容性测试、回归测试(超详细的分类介绍及教学)

目录 1.单元测试 实现单元测试的方法&#xff1a; 注意事项&#xff1a; 2.集成测试 需注意事项&#xff1a; 实现集成测试的方法&#xff1a; 如何实现高效且可靠的集成测试&#xff1a; 3.系统测试 实现系统测试的方法: 须知注意事项&#xff1a; 4.验收测试 实现验…

Ubuntu24 上安装搜狗输入法

link 首先在终端中依次输入以下代码 sudo apt update sudo apt install fcitx 找到语言支持 在终端中依次输入 sudo cp /usr/share/applications/fcitx.desktop /etc/xdg/autostart/ sudo apt purge ibus 进入网页 搜狗输入法linux-首页​ shurufa.sogou.com/linux 找到刚才下…

FairyGUI和Unity联动(入门篇)

一、FairyGUI编辑器中 1.新建按钮、新建组件 编辑器中界面简易设计如下 2.文件-发布设置-发布路径&#xff1a;自己unity项目Resources所在的路径 二、Unity 使用代码展示UI using FairyGUI; using System.Collections; using System.Collections.Generic; using UnityEngi…

【Java知识】Java性能测试工具JMeter

一文带你了解什么是JMeter 概述JMeter的主要功能&#xff1a;JMeter的工作原理&#xff1a;JMeter的应用场景&#xff1a;JMeter的组件介绍&#xff1a; 实践说明JMeter实践基本步骤&#xff1a;JMeter实践关键点&#xff1a; JMeter支持哪些参数化技术&#xff1f;常见插件及其…