相关网站:
- 图标库: 阿里矢量图
- ui: element-ui
### 项目介绍
- 基于vue初始项目
- 基于vue技术栈开发项目
- 使用vue第三方组件
- 熟悉前后端分离开发模式
登录、退出功能,主页布局,用户管理模块,权限管理模块,分类管理模块,
参数管理模块,商品管理模块,订单管理模块,数据统计模块。
电商后台管理系统,用于管理用户的账号、商品分类、商品信息、订单、数据统计等业务功能。
前后端分离,前端项目基于vue技术栈的SPA单页面应用。
前端技术栈:vue, vue-router, element-ui, axios, echarts
后端技术栈:node.js, express, jwt, mysql, sequelize
-
node
使用nvm管理工具
nvm install 12.13.1; nvm use 12.13.1; npm -v;(6.12.1);
-
vue-cli
npm i -g @vue/cli; vue -V;(4.1.1)
-
其他(mysql 数据库,phpstudy 数据库管理工具)
/* 新建目录 */
cd d:home; mkdir projects; cd projects;
/* 使用vue ui图形化界面初始项目 */
vue ui;
1. create 创建项目 -> 选择相应依赖安装
2. 配置项目
Plugins -> Add plugin 安装element-ui插件,选择Import on demand按需导入
Dependencies -> Install dependency 安装axios依赖,选择Main dependen运行依赖
-
github 中新建vue-shop项目
-
进入本地 vue-shop目录中
// 检查本地状态 git status; // 本地提交 git add *; git commit -m "init"; // 建立连接 * git remote add origin(名字随意) git@github.com:lumengxin/vue-shop.git; * (没有正确权限) * 解除关联 git remote rm origin, 改用http协议 git remote add origin https://github.com/lumengxin/vue-shop.git; /* 问题: git pull origin master; 报错 - fatal: refusing to merge unrelated histories; 两个不相干库,无法合并。 解决:git pull origin master --allow-unrelated-histories;强行合并 */ // 推送到远程 git push (-u) origin master;
-
安装mysql, 使用phpStudy 集成环境。开启MySQL.
-
导入数据库。vue_api_server/db/mydb.sql, 使用phpStudy 点击mysql管理器,输入密码root 选择到sql文件位置,数据库名为mydb, 执行导入。
-
验证后台服务,使用Postman测试。
- 打开phpStudy软件,启动MySQL数据库(如果失败,关闭掉本地的MySql服务)
- 进入vue_api_server项目,执行 node app.js; 启动服务
- 登录页面输入用户名,密码
- 调用后台接口验证
- 通过验证后,根据后台响应状态跳转到主页
知识点:
新建login分支:// 创建并切换分支
git checkout -b login;
// 查看分支
git branch;
...
git add *; git commit -m "登录功能";
// 合并到master
git checkout master;
git merge login;
git push origin master;
// login 推送到远程
git checkout login;
git push -u origin login;
将master 中开发好的代码,转移到user分支。同步代码
git checkout -b user;
git add .;
git commit -m "用户管理";
git push -u origin user;
git checkout master;
git merge user;
git push origin master;
.......
-
生成打包报告
- 命令行参数:vue-cli-service build --report
- 可视化ui面板
-
第三库启用CDN
-
Element-UI等组件按需加载
-
路由懒加载
- 安装@babel/plugin-syntax-dynamic-impot包 - 配置 - 改变路由加载形式
-
首页内容定制
优化前:
优化后(externals):
element, CDN加载:
- 通过node创建web服务器
创建node项目,安装express。通过express快速创建web服务器,将vue打包生成的dist文件夹托管为静态资源即可,代码:
const express = require('express')
const app = express()
app.use(express.static('./dist'))
app.listen(80, () => {
console.log('web server running at http://127.0.0.1')
})
- 开启gzip配置
使用gzip可以减小文件体积,使得传输速度更快。
npm install compression -D;
const compression = require('compression')
app.use(compression())
- 配置https服务
传统HTTP协议传输的数据都是明文,不安全。HTTPS协议对数据进行了加密处理,可以防止被中间人窃取,更安全。
申请SSL证书:https://freessl.org https://freessl.cn -> 免费。申请好证书,复制到项目根目录。
配置HTTPS服务(后台项目中导入证书)
const https = require('http')
const fs = require('fs')
const options = {
cert: fs.readFileSync('./full_chain.pem')
key: fs.readFileSync('./private.key')
}
https.createServer(options, app).listen(443)
-
使用pm2管理应用
关闭终端,项目依然可以在后台运行。
- 服务器上安装pm2: npm i pm2 -g
- 启动项目:pm2 start 脚本 --name 自定义名称
- 查看运行项目:pm2 ls
- 停止:pm2 stop 自定义名称(或者 id)
- 删除:pm2 delete 自定义名称
pm2启动vue项目:(进入到vue项目根目录)
1. pm2 start build/dev-server.js <--name xxx>; // xxx自定义名称
2. pm2 start npm -- run dev;