管理后台 遇到的问题

搭建

基于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

  1. 安装插件 babel-plugin-import

    npm install babel-plugin-import --save-dev
  2. 修改配制文件 babel.config.js

    module.exports = {
    presets: [
    '@vue/cli-plugin-babel/preset',
    {
    "plugins": [
    ["import", { "libraryName": "ant-design-vue", "libraryDirectory": "es", "style": 'css' }] // `style: true` 会加载 less 文件 (修改后报错)
    ]
    }
    ]
    }
  3. 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),
    }
  4. 再main.js 中引入

    import {setupAntd} from './plugs/ant-design-vue/index'
    
    const app=createApp(App)
    setupAntd(app)

注意: 以下一下组件 使用时需以下方式引入

  1. notification 文档连接 https://2x.antdv.com/components/notification-cn
  2. 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效果 也可以使用拦截器全局设置

  1. 请求拦截器

    // 添加请求拦截器
    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)
    })
  2. 相应拦截器

    // 添加响应拦截器
    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 目前的默认文案是英文,

配置中文

  1. 引入 ConfigProvider组件 添加 moment

    npm install moment --save

    Moment.js 适用于获取时间 格式化时间的 ant dsign vue 的时间日期类组件使用的此组件

    http://momentjs.cn/

  2. 在根组件 配置

    <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内核的浏览器,使用伪类来改变滚动条的默认样式,详情如下:

滚动条组成部分

  1. ::-webkit-scrollbar 滚动条整体部分

  2. ::-webkit-scrollbar-thumb 滚动条里面的小方块,能向上向下移动(或向左向右移动)

  3. ::-webkit-scrollbar-track 滚动条的轨道(里面装有Thumb)

  4. ::-webkit-scrollbar-button 滚动条的轨道的两端按钮,由于通过点击微调小方块的位置。

  5. ::-webkit-scrollbar-track-piece 内层轨道,滚动条中间部分

  6. ::-webkit-scrollbar-corner 边角,即垂直滚动条和水平滚动条相交的地方

  7. ::-webkit-resizer 两个滚动条的交汇处上用于拖动调整元素大小的小控件

路由

路由传参

使用场景 当从一个页面跳转到另一个页面 时需要从原始页面带一个参数传递到新的页面时就需要使用vue的路由传参

方式1

// 跳转
this.$router.push({
path: `/路由路径/${参数值}`,
})
//路由配置
{
path: '/路由路径/:参数名',
name: '组件名',
component: 组件
}
//取参数值
this.$route.params.参数名

上面这种方式 刷新页面 数据不会丢失 因为参数直接都拼接到 路径上了 页面跳转时 url

http://127.0.0.1/路由路径/:参数名

方式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的更多相关文章

  1. 不想加班开发管理后台了,试试这个 Java 开源项目吧!

    本文适合有 Java 基础并了解 SpringBoot 框架的同学 本文作者:HelloGitHub-嘉文 这里是 HelloGitHub 推出的<讲解开源项目>系列,今天给大家带来一款开 ...

  2. 从0到1用react+antd+redux搭建一个开箱即用的企业级管理后台系列(基础篇)

    背景 ​ 最近因为要做一个新的管理后台项目,新公司大部分是用vue写的,技术栈这块也是想切到react上面来,所以,这次从0到1重新搭建一个react项目架子,需要考虑的东西的很多,包括目录结构.代码 ...

  3. Laravel 6 – 搭建管理后台的用户认证“脚手架”工具

    1. 下载Laravel/ui 命令: composer require laravel/ui "^1.0" -dev 注意laravel framework 6只支持版本1的la ...

  4. Solr学习总结(三)Solr web 管理后台

    前面讲到了Solr的安装,按道理,这次应该讲讲.net与数据库的内容,C#如何操作Solr索引等.不过我还是想先讲一些基础的内容,比如solr查询参数如何使用,各个参数都代表什么意思? 还有solr ...

  5. 如何从投票的网站的管理后台导出已投票的邀请码数据至Excel,并且稍修改,再导入到现场抽奖软件中?

    第一步:进入投票网站的管理后台,导出 已投票 的 邀请码 相关信息至Excel中,下图所示: 并且 删除第一行表头汉字信息. 第二步:把第A列 数值 信息 转换 为 文本 信息(注:转换方法详细点击此 ...

  6. 第二节:模型(Models)和管理后台(Admin site)

    本节内容我们将配置数据库,创建第一个model并且快速了解Django自动生成的管理后台(admin site) 目录 数据库配置 创建模型 激活模型 使用Django API 介绍Django管理后 ...

  7. 微信小程序管理后台介绍

    微信小程序的管理后台,每次进入都需要扫码,还是特别不爽,现在微信小程序还没正式发布,很多人都还没看到管理后台,这里抢先发布出来 ------------------------------------ ...

  8. 【tornado】系列项目(一)之基于领域驱动模型架构设计的京东用户管理后台

    本博文将一步步揭秘京东等大型网站的领域驱动模型,致力于让读者完全掌握这种网络架构中的“高富帅”. 一.预备知识: 1.接口: python中并没有类似java等其它语言中的接口类型,但是python中 ...

  9. 更新日志 - fir.im 新版管理后台邀请内测

    上周,我们对fir.im 新版管理后台的页面结构和样式进行了优化,现在新版的管理后台开始邀请内测,感兴趣的伙伴可以发邮件到 **beta@fir.im** 申请.为了保证服务质量和对问题进行有效追踪, ...

随机推荐

  1. C#事件总线

    目录 简介 实现事件总线 定义事件基类 定义事件参数基类 定义EventBus 使用事件总线 事件及事件参数 定义发布者 定义订阅者 实际使用 总结 参考资料 简介 事件总线是对发布-订阅模式的一种实 ...

  2. hdu 2072 1106学一波字符串分割,C语言与C++两种方法

    hdu2072:题意:输出给定字符串中的单词数(一个句子中可能有两个相同的单词),这里的思想是把每个单词取出来,放入set(这个集合容器中不允许有相同的元素)中,最后输出该集合的大小即可. 现在的问题 ...

  3. Java安全之Fastjson反序列化漏洞分析

    Java安全之Fastjson反序列化漏洞分析 首发:先知论坛 0x00 前言 在前面的RMI和JNDI注入学习里面为本次的Fastjson打了一个比较好的基础.利于后面的漏洞分析. 0x01 Fas ...

  4. MySQL5.7升级到8.0过程详解

    前言: 不知不觉,MySQL8.0已经发布好多个GA小版本了.目前互联网上也有很多关于MySQL8.0的内容了,MySQL8.0版本基本已到稳定期,相信很多小伙伴已经在接触8.0了.本篇文章主要介绍从 ...

  5. Consul 服务的注册和发现

    Consul 是Hashicorp公司推出的开源工具,用于实现分布式系统的服务发现与配置.Consul是分布式的,高可用的,可横向扩展的. Consul 的主要特点有:    Service Disc ...

  6. 在其他程序集访问internal类

    前言  本文将介绍如何在其他程序集访问internal类的方法 首先我们新建一个解决方案,其中同时新建两个类库FooALibray和FooALibray,如下: 其中FooA类代码如下: intern ...

  7. C++ string的size()和length()函数没有区别

    C++标准库中的string中两者的源代码如下:      size_type   __CLR_OR_THIS_CALL   length()   const     { //   return   ...

  8. Java并发-显式锁篇【可重入锁+读写锁】

    作者:汤圆 个人博客:javalover.cc 前言 在前面并发的开篇,我们介绍过内置锁synchronized: 这节我们再介绍下显式锁Lock 显式锁包括:可重入锁ReentrantLock.读写 ...

  9. [Qt]《开发指南》3.1源码分析

    界面: ButterflyGraph: 可以看出,本工程在主程序main里调用窗口界面qmywidget,窗口界面继承了QWidget,并调用自定义类qperson,推测是qmywidget类中的一个 ...

  10. 使用find命令查找大文件

    使用find命令查找大文件 find命令是Linux系统管理员工具库中最强大的工具之一.它允许您根据不同的标准(包括文件大小)搜索文件和目录. 例如,如果在当前工作目录中要搜索大小超过100MB的文件 ...