当前位置:澎娱新闻网 > 汽车大全 > 正文

前端项目 电商后台管理系统

导语:### 商后台管理系统(前端项目)* *功能* *1.用于管理用户账户、商品分类、商品信息、订单、数据统计等业务功能![输入图片说明](https://gitee . com/wbekvam
### 商后台管理系统(前端项目)

* *功能* *

1.用于管理用户账户、商品分类、商品信息、订单、数据统计等业务功能

![输入图片说明](https://gitee . com/wbekvam/vue-shop-admin/raw/master/image/mall _ desc01.png“在此输入图片标题”)

_开发模式_

电子商务后台管理系统整体采用前端分离的开发模式,前端项目基于Vue技术栈的SPA项目

![输入图片说明](https://gitee . com/wbekvam/vue-shop-admin/raw/master/image/mall _ desc02.png“在此输入图片标题”)

_技术选择

前端项目技术堆栈_

某视频剪辑软件

Vue路由器

元素-用户界面

爱可信

展示

_后端项目技术堆栈_

Node.js

表达

智威汤逊广告公司

关系型数据库

续集

项目初始化

前端项目初始化步骤

安装Vue脚手架

通过Vue-Cli创建项目

配置Vue路由器

配置元素-用户界面组件库

配置Axios库

初始化git远程仓库

相关性-按需导入

![输入图片说明](https://gitee . com/wbekvam/vue-shop-admin/raw/master/image/mall _ desc03.png“在此输入图片标题”)

后端项目的环境安装配置

安装MySQL数据库

安装Node.js环境

配置项目相关信息

启动项目

使用phpstudy导入数据库并运行它

Npm初始化后端项目

节点。/app.js

使用邮递员测试后台项目界面是否正常

登录概述

登录业务流程

在登录页面上输入用户名和密码

调用后台接口进行验证

通过验证后,根据后台的响应状态跳转到项目首页

登录与业务相关的技术点

Http是无状态的

通过cookie记录客户端的状态

通过sesion记录服务器端的状态

通过令牌维护状态(不允许跨域使用)

![输入图片说明](https://gitee . com/wbekvam/vue-shop-admin/raw/master/image/mall _ desc04.png“在此输入图片标题”)

登录业务流程

登录页面的布局

通过元素界面组件实现布局

el形式

El-表单-项目

el输入

el按钮

字体图标

创建git分支

//创建并切换登录分支

git结帐-b登录

//登录分支合并为主分支

// 1.切换到主分支

git结账主界面

// 2.将分支合并到主节点

git合并登录

//将本地登录支行推送到github

git push -u origin登录

路由导航警卫控制访问权限

如果用户没有登录,而是直接通过网址访问特定页面,他需要再次导航到登录页面

//在路由对象的每个导航保护之前添加

router.beforeEach((to,from,next) = >;{

//如果用户访问的登录页面,会直接发布

if(to . path = = ' log in ')返回next()

//从sessionStorage获取保存的令牌值

const TokenStr = window . sessionStorage . GetItem('令牌')

//如果没有令牌,强行跳转到登录页面

if(!tokenStr)返回next('/login ')

下一个()

})

主页布局

通过界面获取菜单数据

要求拦截器通过axios添加令牌,确保获得数据的权利

// axios请求拦截

//为请求头对象添加令牌认证的授权字段

config . headers . authorization = window . session storage . getitem(' token ')

返回配置

})

权限管理

权限管理业务分析

权限管理模块控制不同用户可以执行的操作。具体来说,可以通过角色来控制,即每个用户分配一个特定的角色,该角色包含不同的功能权限

![输入图片说明](https://gitee . com/wbekvam/vue-shop-admin/raw/master/image/mall _ desc05.png“在此输入图片标题”)

_分类管理

商品分类概述_

商品分类用于在购物时快速找到要购买的商品并直观地显示出来

参数管理

参数管理概述

商品参数用于显示商品的特征信息,通过电子商务平台的详细页面可以直观的看到

项目中使用的依赖关系(vue系列存储桶未描述)

运行相关性

axios =>。发送请求(request to send的缩写)

echarts =>。图表

element-ui = >;元素ui组件

lodash =>。Js工具库,这个项目使用深度复制和对象合并

力矩= >;时间处理工具库

nprogress = & gt。进度条库

v-viewer = >图片预览工具库

vue-quill-editor = & gt;富文本编辑器

vue-table-with-tree-grid = >树形菜单/表格

发展依赖

巴别塔=>。Es6+语法转换

eslint/babel-eslint =>。语法检查

更少/更少-加载程序=>。语法少

babel-plugin-transform-remove-console = >拆下控制台插件

项目优化

项目优化策略

生成打包报告

以命令行参数的形式生成报告= >:vue-CLI-服务构建-报告

直接通过可视化用户界面面板(通过控制台和分析面板)查看报告

vue-cli 3.0工具生成的项目默认隐藏了webpack的所有配置项,旨在屏蔽项目的配置过程,让开发人员专注于具体功能和业务逻辑的实现

为开发模式和发布模式指定不同的打包条目

默认情况下,vue项目的开发和发布模式共享同一个打包的条目文件(src/main.js)。为了分离项目的开发过程和发布过程,可以为两种模式中的每一种指定打包的条目文件,即:

开发模式入口文件src/main-dev.js

发布模式条目文件src/main-prod.js。

方案:configureWebpack(以链式编程的形式)和chainWebpack(以操作数的形式)

//代码示例

module.exports = {

chainWebpack: config = >;{

//发布模式

config . when(process . ENV . NODE _ ENV = = ' production ',config = & gt{

config.entry('app ')。清除()。添加('。/src/main-prod.js ')

})

//开发模式

config . when(process . ENV . NODE _ ENV = = ' development ',config = & gt{

config.entry('app ')。清除()。添加('。/src/main-dev.js ')

})

}

}

第三方库支持CDN

通过外部上传外部cdn资源

默认情况下,通过导入语法导入的第三方依赖包最终会打包合并到同一个文件中,导致打包成功后单个文件过大的问题= >:Chunk-厂商太大

为了解决上述问题,可以通过webpack的externals节点配置加载外部cdn资源,不会打包任何在externals中声明的第三方依赖包

步骤1

module.exports = {

chainWebpack: config = >;{

config . when(process . ENV . NODE _ ENV = = ' production ',config = & gt{

config.entry('app ')。清除()。添加('。/src/main-prod.js ')

//在vue.config.js中配置如下

config.set('externals ',{

vue: 'Vue ',

vue-router': 'VueRouter ',

axios: 'axios ',

lo dash:“_”,

电子艺术:“电子艺术”,

' n进度:' n进度',

vue-quill-editor:“‘VueQuillEditor’

})

})

config . when(process . ENV . NODE _ ENV = = ' development ',config = & gt{

config.entry('app ')。清除()。添加('。/src/main-dev.js ')

})

}

}

步骤2

在public/index.html文件的头中,删除main-prod中配置的导入(样式表),并用cdn导入替换

步骤3

在public/index.html文件的头部,删除main-prod中配置好的导入(js文件),替换为cdn导入

cdn加速前后的比较(块供应商打包文件)

解析大小2.6m = >: 596.9kB

使用cdn优化elementui封装

具体操作流程

在main-prod.js中,注释掉element-ui按需加载的代码

在index.html的头部区域,通过cdn加载元素ui的js和css样式

主页内容定制

在不同的包装环境下,主页的内容可能会有所不同,可以通过插件的方式进行定制

config.plugin('html ')。tap(args = >;{

参数[0]。ispod = true或false

返回参数

})

Index.html修订版

Css | js在这里

元素用户界面组件是按需加载的

路由延迟加载

在打包建设项目时,javascript包会变得很大,影响页面加载。如果能把不同路由对应的组件分成不同的代码块,然后在访问路由的时候加载对应的组件,效率会更高

安装@ babel/plugin-语法-动态-导入包

将工艺路线更改为按需装载

//示例:

const Foo = () = >导入(/* WebPACKchunk name:“group-foo”*/)。/Foo.vue ')

const Bar = () = >;导入(/* WebPACKchunk name:“group-foo”*/)。/Bar.vue ')

const Baz = () = >导入(/* WebPACKchunk name:“group-foo”*/)。/Baz.vue ')

//从“”导入登录../components/Logon . vue '

常量登录= () = >;导入(/* WebPACKchunk name:" log in _ home _ welcome " */'../components/Logon . vue ')

//从导入主页'../components/Home.vue '

const Home =()= & gt;导入(/* WebPACKchunk name:" log in _ home _ welcome " */'../components/Home.vue ')

//从“”导入欢迎../components/Welcome.vue '

const Welcome =()= & gt;导入(/* WebPACKchunk name:" log in _ home _ welcome " */'../components/Welcome.vue ')

...

有关详细信息,请参考文章底部的链接

在线项目

通过节点创建web服务器

创建一个新的节点项目,安装express,通过express快速创建一个web服务器,托管vue生成的dist文件夹作为静态资源。密钥代码如下

// 1.npm init -y

// 2.npm i express -S

// 3.将打包的dist放入节点项目中

// 4.

const express = require('express ')

const app = express()

app.use(express.static('。/dist '))

app.listen(80,()= >;{

console.log('服务器运行于http://127.0.0.1 ')

})

// 5.启动项目的节点app.js

打开g配置

文件大小减少了g,这使得传输速度更快

在服务器端,express用于g压缩,配置如下

// 1.npm安装压缩-S

// 2.导入包

const compression = require(' compression ')

// 3.启用中间件

app.use(compression())

配置https服务

为什么启用https服务

传统http协议传输的数据是纯文本,不安全

传输的数据通过https协议加密,可以防止数据被中间人窃取,使用更加安全

申请ssl证书(https://freessl.org)= >;普通企业仍然使用收费ssh(默认情况下http协议运行在端口80,默认情况下https运行在端口443)

使用pm2管理应用程序

1.npm i pm2 -g //全球安装

2.pm2启动脚本(如。/app . js)-命名自定义名称//启动项目

3.查看服务器运行的项目

4.pm2重启自定义名称//重启项目

5.pm2停止自定义名称//停止项目

6.pm2删除自定义名称//删除项目

![输入图片说明](https://gitee . com/wbekvam/vue-shop-admin/raw/master/image/mall _ desc06.png“在此输入图片标题”)

免责申明:以上内容属作者个人观点,版权归原作者所有,不代表澎娱新闻网_最近新闻热点大事件_今日热点新闻_每日娱乐新闻立场!登载此文只为提供信息参考,并不用于任何商业目的。如有侵权或内容不符,请联系我们处理,谢谢合作!
当前文章地址:https://www.pengyushicai.com/qiche/809388.html 感谢你把文章分享给有需要的朋友!
上一篇:弹簧腿杰克 传说弹簧腿杰克拥有超能力,它真的存在过吗?到底谁才是这个恶魔 下一篇: 鞠梓 吉林松原女警鞠梓突发病去世,驾车几百里熬夜赶工作片后长眠