电商后台管理系统项目的优化

      在面试过程中,面试官除了对基础知识的盘查之外,还会了解你所做的项目,单单知识谈项目所用到的技术已经满足不了面试官对我们的好奇心了,每次面试问到优化这一方面,因为没怎么准备,含糊的说辞只会让面试官连连摇头,因此,我特意把所做的项目之一——电商后台管理系统的优化扒拉出来进行一番梳理,冲呀!(对了,我是个大三的小菜鸡,这个优化属于比较基础的优化)

概要:这个项目属于前后端分离,前端所用的技术栈为axios+vue+echarts+element ui.

优化方向

  1. 对较大包的打包优化(基于cdn)
  2. 对element ui的优化
  3. 自定义标题内容
  4. 路由懒加载

优化一:对较大包的优化,使用externals节点

步骤1:创建配置文件等准备工作

(1)终端输入vue ui打开可视化界面或者使用vue-cli-service build --report对资源大小占比进行分析

(2)创建vue.config.js文件,在该文件中修改webpack默认配置,详细参考如下链接:https://cli.vuejs.org/zh/config/#vue-config-js

(3)使用chainWebpack自定义打包入口(将开发和发布的入口分离开,方便各自配置)

//基本格式,应该导出一个包含自定义配置选项的对象
module.exports = {
    // 通过chainWebpack自定义打包入口
    chainWebpack: config => {
        //发布模式
        config.when(process.env.NODE_ENV === 'production' ,config => {
            config.entry('app')
            .clear()
            .add('./src/main-prod.js')
        })
        //开发模式
        config.when(process.env.NODE_ENV === 'development' ,config => {
            config
            .entry('app')
            .clear()
            .add('./src/main-dev.js')
        })
  }

 步骤2:通过externals加载外部CND资源

(1)对配置进行设置,将不需要打包的依赖放置在externals中

//基本格式,应该导出一个包含自定义配置选项的对象
module.exports = {
    // 通过chainWebpack自定义打包入口
    chainWebpack: config => {
        //发布模式
        config.when(process.env.NODE_ENV === 'production' ,config => {
            config.entry('app')
            .clear()
            .add('./src/main-prod.js')
        //设置externals需要加载的文件
        config.set('externals',{
            vue:'Vue',
            // 'vue-router':VueRouter,
            axios:'axios',
            lodash:'_',
            echarts:'echarts',
            nprogress:'NProgress'
        })
        })
        //开发模式
        config.when(process.env.NODE_ENV === 'development' ,config => {
            config
            .entry('app')
            .clear()
            .add('./src/main-dev.js')
        })
  }

(2)在dist文件夹下的index.html头文件中加载相应的cdn

​
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <link rel="icon" href="<%= BASE_URL %>favicon.ico">
    <title><%= htmlWebpackPlugin.options.isProd?'':'dev-' %>电商后台管理系统</title>

    <link rel="stylesheet" href="https://cdn.staticfile.org/nprogress/0.2.0/nprogress.min.css" />
    <script src="https://cdn.staticfile.org/vue/2.6.11/vue.min.js"></script>
    <script src="https://cdn.staticfile.org/axios/0.21.1/axios.min.js"></script>
    <script src="https://cdn.staticfile.org/lodash.js/4.17.11/lodash.min.js"></script>
    <script src="https://cdn.staticfile.org/echarts/4.1.0/echarts.min.js"></script>
    <script src="https://cdn.staticfile.org/nprogress/0.2.0/nprogress.min.js"></script>

  </head>

​

优化二:对element-ui的优化

步骤1:在入口文件中将用import导入的element-ui注释掉

步骤2:在public/index.html文件中引入element-ui的cdn的Js和css

优化三:自定义标题内容

     不同的打包环境下,首页内容可能会有所不同,我们可以通过插件的方式进行定制,插件配置如下:

步骤1:在配置文件中设置isProd的值,从而在Index.html中判断isProd的值进行取值

步骤2:在Index.html中判断isProd的值进行取值

 优化四:路由懒加载

在打包构建过程中,js包会变得非常大,影响页面加载,如果我们将不同路由对应的组件分割成不同的代码块,只有在路由被访问时才被加载,那么可以提高效率

步骤1:安装@babel/pugin-syntax-dynamic-import

步骤2:在babel.config.js文件中声明该插件

  "plugins": ["@babel/plugin-syntax-dynamic-import":

步骤3:将路由改成按需加载的形式

const home=()=>import(/*webpackChunkName:group-foo*/,'./component/home.vue')

小结:上面的优化是跟视频学来的,优化是一个很大而且对于我们前端来说不可缺少的内容,对于优化作为前端的我们来说应该有一个概念体系,明白从哪一方面可以优化,这样才能在面试时让面试官知道我们对优化是花了时间和做出实践的,已经八月了,同学们要冲起来哦!!

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一. 简易后台管理系统功能: 1.1) 登录验证:登录时检测帐号密码是否正确及用户是否有效。否则给予提示并需要重新输入 1.2) 权限管理功能:登录后,根据当前角色获取该角色的权限,权限在左侧列表显示,击左侧列表前往相应界面 1.3) 角色管理功能:可根据不同角色分配不同权限。 1.4) 日志记录功能:通过切面和注解的形式自动记录需要记录的操作 1.5) 前台:界面右侧的导航栏添加右键关闭当前、关闭其它、关闭所有tab的功能,提供收起、展开左侧导航列表功能,列表界面配合mybatis分页插件进行分页,提供便捷的增删改查和批量操作模版,提供简易的页面元素验证方式,提供form表单元素自动加载功能,提供图片上传及预览示例,提供前后台数据快速交互示例等 1.6) 后台:提供基本的Controller,service, mapper,使能够极快速得获取数据; 提供异常/错误页面处理;提供是否有效用户访问校验,未登录者需先登录;提供代码生成工具类,可一键生成所需的基本代码,生成的代码模版中增删改查功能直接可用。 二. 使用步骤 2.1).下载后解压。导入项目。 2.2).执行init中的sql。主要是要把系统用户建立起来。 2.3).运行项目,前台输入http://localhost:8080 可前往登录页。 2.4).帐号 admin 密码 123456 登录。 登录进去之后就自己玩啦。 2.5).上传资源的位置默认为当前项目同一级的路径,可以在uploadSetting.properties中设置 #原博客见: https://blog.csdn.net/HelloWorld_In_Java/article/details/83794696

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值