❤ VUE3 项目具体配置(二)

news2024/10/5 11:38:14

❤ VUE3 项目具体配置(二)

一、create-vue快速生成项目原理

介绍:
前段时间我们有去探索了一下vue-cli、cra的原理,生成项目的过程,他是基于webpack的,但是今天我们的主角是create-vue,他是基于vite的,为什么要使用vite而不是webpack呢?因为vite比webpack快。
如何用vite去初始化一个Vue3的项目

npm init vue@latest

在这里插入图片描述

配置详情:

Project name:=> 项目名称,默认值:vue-project,可输入想要的项目名称,此处我写的是:demo。
Add TypeScript? => 是否加入TypeScript组件?默认值:No。 我选择的yes
Add JSX Support? => 是否加入JSX支持?默认值:No。
Add Vue Router for Single Page Application development?
=> 是否为单页应用程序开发添加Vue Router路由管理组件?默认值:No。
Add Pinia for state management? => 是否添加Pinia组件来进行状态管理?默认值:No。
Add Vitest for Unit testing? => 是否添加Vitest来进行单元测试?默认值:No。
Add an End-to-End Testing Solution?=> 是否添加端到端测试?默认值No。
Add ESLint for code quality? => 是否添加ESLint来进行代码质量检查?默认值:No。

二、项目具体配置

脚手架已经帮我们做好的:
在这里插入图片描述

vue3+ts 配置路由 Vue Router (vue-router@4)
npm install vue-router@4

安装和配置 pinia (vue2的vuex状态管理)
npm install pinia

三、进一步配置:

(1)安装使用axios

安装

npm install axios

(2)安装和配置 Element Plus(完整导入)

npm install element-plus --save

main.ts中引入:

// 引入组件
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
const app = createApp(App)
app.use(createPinia()).use(ElementPlus)
app.mount('#app')

测试使用效果:

<el-button type="primary">Primary</el-button>

在这里插入图片描述

(3)配置路由拦截

  • 概述
    我们的网页需要用户登录后才可以进行显示,不然将其拦截到登录页面。
    登录成功后,前端的 header 加上 token 值。如果 token 值为空,说明未登录

  • 定义白名单

  • 设置路由守卫

// 白名单
const whiteList =['/home', '/about','/']; //定义白名单
// 路由守卫
router.beforeEach((to, from, next) => {
    console.log(to, from, next,'路由加载中!');
     if (to.matched.length ===0) { 
        from.name ? next({ name:from.name }) : next('/');   
        //如果上级也未匹配到路由则跳转登录页面,如果上级能匹配到则转上级路由
     } else{
        //如果未匹配到路由--检测白名单
        if (whiteList.indexOf(to.path) !== -1) {
          // 在免登录白名单,直接进入
          console.log('白名单进入!');
          next()
        }else{
          console.log('重定向!');
          next('/');//不满足要求重定向
        }
     }
});

export default router
进一步:
  • 抽离为单个模块permission.ts

(4) 进度条NProgress配置:

使用nprogress实现全局loading进度条

npm install  nprogress
  • 自定义NProgress进度条
import NProgress from "nprogress";
import "nprogress/nprogress.css";
NProgress.configure({
  // 动画方式
  easing: "ease",
  // 递增进度条的速度
  speed: 500,
  // 是否显示加载ico
  showSpinner: false,
  // 自动递增间隔
  trickleSpeed: 200,
  // 初始化时的最小百分比
  minimum: 0.3
});
export default NProgress;
  • 引入和使用
import NProgress from "../progress";

NProgress.start() //使用
NProgress.done()  //停止

在这里插入图片描述

(4) js-cookie配置:

一个简单的,轻量级的 处理cookies的js API,用来处理cookie相关的插件

安装:

npm install --save js-cookie

安装成功
在这里插入图片描述

引入

import Cookies from 'js-cookie'

使用

  • 添加cookie
// 创建一个名称为name,对应值为value的cookie,由于没有设置失效时间,默认失效时间为该网站关闭时
Cookies.set(name, value)

// 创建一个有效时间为7天的cookie
Cookies.set(name, value, { expires: 7 })

// 创建一个带有路径的cookie
Cookies.set(name, value, { path: '' })

// 创建一个value为对象的cookie
const obj = { name: 'ryan' }
Cookies.set('user', obj)

  • 获取cookie
//获取指定名称的cookie
Cookies.get(name) // value

// 获取value为对象的cookie
const obj = { name: 'ryan' }
Cookies.set('user', obj)
JSON.parse(Cookies.get('user'))

// 获取所有cookie
Cookies.get()

  • 删除cookie
// 删除指定名称的cookie
Cookies.remove(name) // value

// 删除带有路径的cookie
Cookies.set(name, value, { path: '' })
Cookies.remove(name, { path: '' })

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

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

相关文章

用final修饰java方法的参数

当Java方法的参数用final修饰&#xff1a; 如果输入参数是简单类型&#xff0c;那么在被调用函数内部不能修改参数的值。如果输入参数是对象的引用&#xff0c;那么在被调用函数内部不能改变对象的引用&#xff0c;即必须引用同一个对象&#xff0c;但可以修改对象的属性。 代…

数据预处理之数据规约

目录 一、前言 二、PCA的主要参数&#xff1a; 三、数据归约任务1 四、数据规约任务2 一、前言 PCA(Principal Component Analysis)&#xff0c;即主成分分析方法&#xff0c;是一种使用最广泛的数据降维算法。PCA的主要思想是将n维特征映射到k维上&#xff0c;这k维是全新…

第三十九章Java成员方法的声明和调用

声明成员方法可以定义类的行为&#xff0c;行为表示一个对象能够做的事情或者能够从一个对象取得的信息。类的各种功能操作都是用方法来实现的&#xff0c;属性只不过提供了相应的数据。一个完整的方法通常包括方法名称、方法主体、方法参数和方法返回值类型&#xff0c;其结构…

9、动手学深度学习——使用块的网络(VGG)

1、VGG块 虽然AlexNet证明深层神经网络卓有成效&#xff0c;但它没有提供一个通用的模板来指导后续的研究人员设计新的网络。 在下面的几个章节中&#xff0c;我们将介绍一些常用于设计深层神经网络的启发式概念。 与芯片设计中工程师从放置晶体管到逻辑元件再到逻辑块的过程…

element input,一个中文占3个字符

思路&#xff1a;标记字符的下标&#xff0c;截取&#xff0c;重新赋值 代码如下&#xff0c;可直接复制预览 <template><div class"form-item"><el-inputv-model"testValue":maxlength"maxlength"input"handleInput"…

Kafka入门, 消费者组案例(十九)

pom 文件 <dependencies><dependency><groupId>org.apache.kafka</groupId><artifactId>kafka-clients</artifactId><version>3.0.0</version></dependency></dependencies>独立消费者案例&#xff08;订阅主语&a…

简单认识LVS-DR负载群集和部署实例

文章目录 一、LVS-DR负载群集简介1、DR模式数据包流向分析2、DR 模式的特点 二、DR模式 LVS负载均衡群集部署 一、LVS-DR负载群集简介 1、DR模式数据包流向分析 1、客户端发送请求到 Director Server&#xff08;负载均衡器&#xff09;&#xff0c;请求的数据报文&#xff0…

放大器的基本知识

文章目录 1.反向输入&#xff08;引出&#xff1a;反向器&#xff09;1.反向输入例子 2.同向输入&#xff08;引出&#xff1a;电压跟随器&#xff09;2.同向输入例子 3.加法运算 1.反向输入&#xff08;引出&#xff1a;反向器&#xff09; 1.反向输入例子 —————————…

基于Java网上药品售卖系统设计实现(源码+lw+部署文档+讲解等)

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…

【MYSQL基础】基础命令介绍

基础命令 MYSQL注释方式 -- 单行注释/* 多行注释 哈哈哈哈哈 哈哈哈哈 */连接数据库 mysql -u root -p12345678退出数据库连接 使用exit;命令可以退出连接 查询MYSQL版本 mysql> select version(); ----------- | version() | ----------- | 8.0.27 | ----------- 1…

HA使用Node-RED推送消息到手机

目录 1.一个简单示例(1).注入使用个inject节点&#xff0c;用来触发(2).手机通知是call service节点(3).保存-部署&#xff0c;看效果 2.消息-添加变量 1.一个简单示例 (1).注入使用个inject节点&#xff0c;用来触发 (2).手机通知是call service节点 Node-RED需要提前和Home A…

spring boot + Apache tika 实现文档内容解析

Apache tika是Apache开源的一个文档解析工具。Apache Tika可以解析和提取一千多种不同的文件类型(如PPT、XLS和PDF)的内容和格式&#xff0c;并且Apache Tika提供了多种使用方式&#xff0c;既可以使用图形化操作页面&#xff08;tika-app&#xff09;&#xff0c;又可以独立部…

Dockerfile 基本命令

本文目录 1. 什么是 Dockerfile2. Dockerfile 基本命令2.1 FROM 指定基础镜像2.2 RUN 执行命令2.3 COPY 复制文件2.4 ADD 更高级的复制文件2.5 CMD2.6 ENTRYPOINT2.7 ENV 设置环境变量2.8 ARG2.9 VOLUME 定义匿名卷2.10 EXPOSE2.11 WORKDIR 指定工作目录2.12 USER 指定当前用户…

【洛谷】P1073 [NOIP2009 提高组] 最优贸易(dp+搜索)

接下来讲具体解法。第一、输入。存邻接表第二、我们需要做深搜。可以用递归来做&#xff0c;同时做动规&#xff1a;函数如下&#xff08;贴了注释&#xff09;.void dfs(int x,int minx,int pre) { //x表示当前访问的节点编号&#xff0c;minx表示目…

添加白名单 gcc/g++【Linux系统编程】

目录 一、添加白名单 二、gcc和g的使用 1、背景知识 一、添加白名单 如何让普通用户可以执行sudo&#xff08;以root的身份&#xff09;指令&#xff1f; 添加白名单 用root身份在/etc/sudoers目录添加 vim /etc/sudoers二、gcc和g的使用 1、背景知识 &#xff08;1&#…

【FFmpeg实战】ffplay整体框架

原文地址&#xff1a;https://segmentfault.com/a/1190000042611796 本文使用的ffplay.c的版本是搭配ffmpeg5.0的版本。 ffplay代码大致架构 关于fplay的架构很难三言两语说得清楚&#xff0c;而且本人对它的理解也不是很深&#xff0c;加上行笔比较啰嗦&#xff0c;可能就更…

springboot配置多个mongo数据源

yaml配置文件&#xff1a; spring:data:mongodb:uri: mongodb://admin:密码ip:27017/paasoo?authSourceadminother:uri: mongodb://admin:密码ip:27017/conversation?authSourceadmin java config文件&#xff1a; package com.paasoo.quartz.config.mongo;import org.spr…

VR数字乡村激活乡土文化生命力,助力乡村振兴

民俗节庆、传统技艺等蕴含着中华五千年以来的传统文化&#xff0c;乡村文化建设在为文化留住血脉的同时&#xff0c;也为高质量发展创造更多可能。找准乡村文化与产业的结合点&#xff0c;有利于激发产业发展的潜力&#xff0c;激活乡土文化的生命力&#xff0c;为乡村振兴注入…

baichuan-7B模型

文章目录 baichuan-7B介绍baichuan-7B 推理baichuan-7B 微调 baichuan-7B介绍 2023年6月15日&#xff0c;搜狗创始人王小川创立的百川智能公司&#xff0c;发布了70 亿参数量的中英文预训练大模型——baichuan-7B。 baichuan-7B 基于 Transformer 结构&#xff0c;在大约 1.2…

【Ubuntu学习MySQL——安装MySQL】

首先得su&#xff0c;然后输入密码&#xff0c;进入到root模式下&#xff0c;以下命令均在root用户模式下进行 1.在这里我们使用RPM包来安装Mysql&#xff0c;所以首先安装RPM包 apt install rpm2.安装完RPM包之后&#xff0c;检测系统是否自带安装MySQL&#xff0c;如果没有…