管理后台Vue
管理后台 遇到的问题
搭建
基于vue 3.0 Vue CLI 4.x Ant Design Vue 2.0 搭建后台管理系统
Ant Design Vue 2.0
npm i --save ant-design-vue@next
Axios
npm install axios
NProgress
npm install --save nprogress
配制
按需引入Ant Design Vue
安装插件 babel-plugin-import
npm install babel-plugin-import --save-dev
修改配制文件 babel.config.js
module.exports = {
presets: [
'@vue/cli-plugin-babel/preset',
{
"plugins": [
["import", { "libraryName": "ant-design-vue", "libraryDirectory": "es", "style": 'css' }] // `style: true` 会加载 less 文件 (修改后报错)
]
}
]
}SRC下新建 plugs/ant-design-vue文件夹 创建index.js
index.js 中代码
import {
Button,
} from 'ant-design-vue' import 'ant-design-vue/dist/antd.css'
export function setupAntd(app){
app.use(Button),
}
再main.js 中引入
import {setupAntd} from './plugs/ant-design-vue/index' const app=createApp(App)
setupAntd(app)
注意: 以下一下组件 使用时需以下方式引入
- notification 文档连接 https://2x.antdv.com/components/notification-cn
- message 文档连接 https://2x.antdv.com/components/message-cn
import { message } from 'ant-design-vue';
import { notification } from "ant-design-vue";
全局配置Axios
main.js
import Axios from 'axios'
Axios.defaults.baseURL="http://192.168.31.199:8888"
const app=createApp(App)
app.config.globalProperties.$axios=Axios
axios 拦截器
大部分请求接口需要token 等身份信息才能访问 若给每个请求都加上请求头设置 麻烦而且后期不好修改 这时可以使用拦截器 另外 实现 加载数据的loading效果 也可以使用拦截器全局设置
请求拦截器
// 添加请求拦截器
Axios.interceptors.request.use(function (config) {
// 在发送请求之前做些什么
// 判断是否存在token,如果存在将每个页面header添加token
if (sessionStorage.getItem("access-token")) {
config.headers.common['access-token'] = sessionStorage.getItem("access-token");
}
return config
}, function (error) {
router.push('/')
return Promise.reject(error)
})
相应拦截器
// 添加响应拦截器
Axios.interceptors.reponse.use(res => {
// 请求成功对响应数据做处理
// 该返回的数据则是axios.then(res)中接收的数据
return res
}, err => {
// 在请求错误时要做的事儿
// 该返回的数据则是axios.catch(err)中接收的数据
return Promise.reject(err)
})
使用iconfont
引入:
import {
createFromIconfontCN,
} from "@ant-design/icons-vue";
const IconFont = createFromIconfontCN({
scriptUrl: "//at.alicdn.com/t/font_1926999_siv4qyygml.js",
});
export default {
components: {
IconFont,
},
使用:
<IconFont type="icon 名称" />
ant design vue 国际化配置
ant-design-vue 目前的默认文案是英文,
配置中文
引入 ConfigProvider组件 添加 moment
npm install moment --save
Moment.js 适用于获取时间 格式化时间的 ant dsign vue 的时间日期类组件使用的此组件
在根组件 配置
<template>
<div class="app-root">
<a-config-provider :locale="locale">
<App />
</a-config-provider>
</div> </template>
<script>
import zhCN from 'ant-design-vue/es/locale/zh_CN';
import moment from 'moment';
import 'moment/dist/locale/zh-cn';
moment.locale('zh');
export default {
components: {
}, mounted() {},
data() {
return {
moment,
locale: zhCN };
}, methods: { },
};
</script>
路由切换 动画
Vue 路由切换时 页面的动画可以在 <router-view></router-view>使用vue提供的<transition></transition>进行设置 具体参数如下:
<router-view v-slot="{ Component }">
<transition
name="custom-classes-transition"
enter-active-class="animate__animated animate__fadeIn"
>
<keep-alive>
<component :is="Component" />
</keep-alive>
</transition>
</router-view>
NProgress 加载进度条配置
引入组件
import NProgress from 'nprogress'
import 'nprogress/nprogress.css'
使用
NProgress.start() //进度条显示
NProgress.done() //加载完成
例子
再vue 路由中使用 实现路由切换 加载进度
// 给路由设置守卫函数
router.beforeEach((to, form, next) => {
NProgress.start()
next()
// to表示将要访问的路径
// form表示从那个页面跳转而来
// next表示允许跳转到指定位置
})
router.afterEach(() => {
NProgress.done()
})
自定义滚动条
<div class="scrollbar">
<div class="contxt"></div>
</div>
.scrollbar{
width: 50px;
height: 200px;
overflow: auto;
float: left;
margin: 5px;
border: none;
}
.context{
width: 30px;
height: 300px;
margin: 0 auto;
}
.scrollbar::-webkit-scrollbar {/*滚动条整体样式*/
width: 10px; /*高宽分别对应横竖滚动条的尺寸*/
height: 1px;
}
.scrollbar::-webkit-scrollbar-thumb {/*滚动条里面小方块*/
border-radius: 10px;
-webkit-box-shadow: inset 0 0 5px rgba(0,0,0,0.2);
background: #535353;
}
.scrollbar::-webkit-scrollbar-track {/*滚动条里面轨道*/
-webkit-box-shadow: inset 0 0 5px rgba(0,0,0,0.2);
border-radius: 10px;
background: #EDEDED;
}
设置针对webkit内核的浏览器,使用伪类来改变滚动条的默认样式,详情如下:
滚动条组成部分
::-webkit-scrollbar 滚动条整体部分
::-webkit-scrollbar-thumb 滚动条里面的小方块,能向上向下移动(或向左向右移动)
::-webkit-scrollbar-track 滚动条的轨道(里面装有Thumb)
::-webkit-scrollbar-button 滚动条的轨道的两端按钮,由于通过点击微调小方块的位置。
::-webkit-scrollbar-track-piece 内层轨道,滚动条中间部分
::-webkit-scrollbar-corner 边角,即垂直滚动条和水平滚动条相交的地方
::-webkit-resizer 两个滚动条的交汇处上用于拖动调整元素大小的小控件
路由
路由传参
使用场景 当从一个页面跳转到另一个页面 时需要从原始页面带一个参数传递到新的页面时就需要使用vue的路由传参
方式1
// 跳转
this.$router.push({
path: `/路由路径/${参数值}`,
})
//路由配置
{
path: '/路由路径/:参数名',
name: '组件名',
component: 组件
}
//取参数值
this.$route.params.参数名
上面这种方式 刷新页面 数据不会丢失 因为参数直接都拼接到 路径上了 页面跳转时 url
方式2
//跳转
this.$router.push({
name: '组件名',
params: {
参数名: 参数值
}
})
//路由配置
{
path: '/路由路径',
name: '组件名',
component: 组件
}
//取参数值
this.$route.params.参数名
上面这种方式 页面刷新数据丢失 这种方式通过组件名进行路由匹配 所以路由名一定要对上 数据会进行隐藏在url后看不到数据
方式3
//跳转
this.$router.push({
path: '/路由路径',
query: {
参数名: 参数值
}
})
//路由配置
{
path: '/路由路径',
name: '组件名',
component: 组件
}
//取参数值
this.$route.query.参数名
上这种方式使用 刷新页面 数据不会丢失 数据会显示在url后面
注意: 在我使用的过程中 经常需要传递一个对象而不是简单的基本数据 但对象无法传输 我的解决方案是将对象转成json字符串格式 到新页面 再转成对象进行使用
打包
打包后会遇到页面打开是空白的状况
需要在src 先创建一个 vue.config.js 文件
module.exports = {
publicPath: './',
};
搭建管理后台 比较重要的 是
管理后台Vue的更多相关文章
- 不想加班开发管理后台了,试试这个 Java 开源项目吧!
本文适合有 Java 基础并了解 SpringBoot 框架的同学 本文作者:HelloGitHub-嘉文 这里是 HelloGitHub 推出的<讲解开源项目>系列,今天给大家带来一款开 ...
- 从0到1用react+antd+redux搭建一个开箱即用的企业级管理后台系列(基础篇)
背景 最近因为要做一个新的管理后台项目,新公司大部分是用vue写的,技术栈这块也是想切到react上面来,所以,这次从0到1重新搭建一个react项目架子,需要考虑的东西的很多,包括目录结构.代码 ...
- Laravel 6 – 搭建管理后台的用户认证“脚手架”工具
1. 下载Laravel/ui 命令: composer require laravel/ui "^1.0" -dev 注意laravel framework 6只支持版本1的la ...
- Solr学习总结(三)Solr web 管理后台
前面讲到了Solr的安装,按道理,这次应该讲讲.net与数据库的内容,C#如何操作Solr索引等.不过我还是想先讲一些基础的内容,比如solr查询参数如何使用,各个参数都代表什么意思? 还有solr ...
- 如何从投票的网站的管理后台导出已投票的邀请码数据至Excel,并且稍修改,再导入到现场抽奖软件中?
第一步:进入投票网站的管理后台,导出 已投票 的 邀请码 相关信息至Excel中,下图所示: 并且 删除第一行表头汉字信息. 第二步:把第A列 数值 信息 转换 为 文本 信息(注:转换方法详细点击此 ...
- 第二节:模型(Models)和管理后台(Admin site)
本节内容我们将配置数据库,创建第一个model并且快速了解Django自动生成的管理后台(admin site) 目录 数据库配置 创建模型 激活模型 使用Django API 介绍Django管理后 ...
- 微信小程序管理后台介绍
微信小程序的管理后台,每次进入都需要扫码,还是特别不爽,现在微信小程序还没正式发布,很多人都还没看到管理后台,这里抢先发布出来 ------------------------------------ ...
- 【tornado】系列项目(一)之基于领域驱动模型架构设计的京东用户管理后台
本博文将一步步揭秘京东等大型网站的领域驱动模型,致力于让读者完全掌握这种网络架构中的“高富帅”. 一.预备知识: 1.接口: python中并没有类似java等其它语言中的接口类型,但是python中 ...
- 更新日志 - fir.im 新版管理后台邀请内测
上周,我们对fir.im 新版管理后台的页面结构和样式进行了优化,现在新版的管理后台开始邀请内测,感兴趣的伙伴可以发邮件到 **beta@fir.im** 申请.为了保证服务质量和对问题进行有效追踪, ...
随机推荐
- 深入探索Android热修复技术原理读书笔记 —— 资源热修复技术
该系列文章: 深入探索Android热修复技术原理读书笔记 -- 热修复技术介绍 深入探索Android热修复技术原理读书笔记 -- 代码热修复技术 1 普遍的实现方式 Android资源的热修复,就 ...
- MFC对话框不能使用菜单更新宏ON_UPDATE_COMMAND_UI
菜单更新宏的原理 更新处理宏的工作原理是基于框架窗口类的.MFC中对话框菜单更新宏的原理是:当我们使用从CFrameWnd框架窗口类中派生的类创建窗口时,当我们单击菜单且菜单还未弹出前会产生WM_IN ...
- 一个入门级CTF的Reverse
这道题是XCTF攻防世界上的一道新手入门题目! 年前刚接触逆向时IDA,OD了这些工具都不会用(负基础),当时做这些题的时候觉得挺难(主要是缺少练习,没思路无从下手).现在回头再来看这些题目感觉确实是 ...
- utf8字符集下的比较规则
前言: 在MySQL中,比较常用的字符集是utf8和utf8mb4.这两个字符集是类似的,utf8是utf8mb3的别名,所以之后在MySQL中提到utf8就意味着使用1~3个字节来表示一个字符,如果 ...
- BUAA软件工程_结对编程
1.写在前面 项目 内容 所属课程 2020春季计算机学院软件工程(罗杰 任健) (北航) 作业要求 结对项目作业 课程目标 培养软件开发能力 本作业对实现目标的具体作用 培养结对编程开发项目的能力 ...
- CocoaPods 构建自己的 Pod 库
构建一个自己的库供其它人使用是不是一件很酷(苦)的事情,通过CocoaPods 可以快捷的构建自己库,并向全世界分享你的成果 一.创建 Podspec 有两种方式: 使用命令 pod lib crea ...
- Ubuntu相关系统配置问题
1.Ubuntu 16.04下安装VMware Tools 由于下载的是ubuntu-16.04.3-desktop-amd64,需要安装vmware tools,原来提取提取文件再解压的方式比较麻烦 ...
- tar解压某个目录 tar解压某个指定的文件或者文件夹
tar解压某个目录 tar解压某个指定的文件或者文件夹 发布时间:2017-05-30 来源:服务器之家 1. 先查看压缩文档中有那些文件,如果都不清楚文件内容,然后就直接解压,这个是不可能的 使 ...
- Win10屏幕亮度不能调节,调节无效怎么办?
Win10屏幕亮度不能调节,调节无效怎么办? 听语音 浏览:1027 | 更新:2019-11-22 11:43 1 2 3 4 5 6 7 分步阅读 一些用户在使用win10系统之后,出现了电脑屏幕 ...
- xsos:一个在Linux上阅读SOSReport的工具
xsos:一个在Linux上阅读SOSReport的工具 时间 2019-05-23 14:36:29 51CTO 原文 http://os.51cto.com/art/201905/596889 ...