vue项目实战笔记
目标
1、能够基于vue初始化项目
2、能够基于vue技术栈进行项目开发
3、能够使用vue的第三方组件进行项目开发
4、能够说出前后端分离的开发模式
目录
1、项目概述
2、项目初始化
3、登录/退出功能
4、主页布局
5、用户管理模块
6、权限管理模块
7、分类管理模块
8、参数管理模块
9、商品管理模块
10、订单管理模块
11、数据统计模块
1.项目概述
1.1电商项目基本业务概述
根据不同的应用场景,电商系统一般都提供了PC端、移动端、移动Web、微信小程序等多种终端访问方式。
虽然终端各不相同,但是使用同一份数据库和API接口服务器。我们重点关注PC后台管理系统,他不是给普通买家用的,而是给卖家用的。
1.2电商后台管理系统的功能
电商后台管理系统用于管理用户账户、商品分类、商品信息、订单、数据统计等业务功能。
1.3电商后台管理系统的开发模式(前后端分离)
电商后台管理系统整体采用前后端分离的开发模式,其中前端项目是基于Vue技术栈的SPA项目。
1.4电商后台管理系统的技术选型
1.前端项目技术栈
- vue
- vue-router
- Element-UI
- Axios
- Echarts
2.后端项目技术栈(了解即可)
- Node.js
- Express
- Jwt(状态保持工具,模拟类似session)
- Mysql
- Sequelize(操作数据库的框架)
2.项目初始化
2.1前端项目初始化步骤
(1)安装Vue脚手架
(2)通过脚手架创建项目
(3)配置Vue路由
(4)配置Element-UI组件库
(5)配置axios组件库
(6)初始化git远程仓库
(7)将本地项目托管到Github或者码云中
(1)-(5)使用vue脚手架创建项目 的过程可以查看通过vue ui(vue脚手架)快速创建项目步骤
(6)-(7)初始化git远程仓库,托管到码云中参考使用码云管理项目
2.2后台项目的环境安装配置
(1)安装MySQL数据库
(2)安装Node.js环境
(3)配置项目相关信息
(4)启动项目
(5)使用Postman测试后台接口是否正常
后台项目下载地址: https://gitee.com/wBekvam/vueShop-api-server.git
按照README.md进行操作即可。
我使用的是navicat for mysql,导入mydb.sql后,启动后台项目即可,使用postman进行接口测试。
3.登录/退出功能
3.1登录概述
1.登录业务流程
(1)在登录页面输入用户名和密码
(2)调用后台接口进行验证
(3)通过验证之后,根据后台的响应状态跳转到项目主页
2.登录业务的相关技术点
- http是无状态的
- 通过cookie在客户端记录状态
- 通过session在服务端记录状态
- 通过token方式维持状态(存在跨域问题时使用,否则使用以上两种)
3.2登录——token原理分析
3.3登录功能实现
1.登录页面的布局
通过Element-ui组件实现布局
- el-form
- el-form-item
- el-input
- el-button
- 字体图标
使用vscode打开前端项目
执行:git status检查项目状态。
执行:git checkout -b login 创建login分支,并且切换到该分支。
执行:git branch 查看当前项目所有分支
执行:git status 查看项目当前在哪个分支上
然后进行项目的梳理,删除所有不必要的代码和组件,参考文章梳理vue项目,删除不必要的代码和组件
然后再渲染Login组件并实现路由重定向
使用element-ui组件、图标和阿里图标制作登录页面
2.登录功能的实现
使用element-ui实现表单验证
使用element-ui和axios实现登录前表单的预验证
登录成功或者失败,需要使用element-ui配置Message全局弹框组件
完善登录之后的页面跳转操作
3.路由导航守卫控制访问权限
如果用户没有登录,但是直接通过URL访问特定页面,需要重新导航到登录页面
// 挂在路由导航守卫
router.beforeEach((to, from, next) => {
// to 将要访问的路径
// from 代表从哪个路径跳转而来
// next 是一个函数,表示放行
// next() 放行 next('/login') 强制跳转
if (to.path === '/login') return next();
// 获取token
const tokenStr = window.sessionStorage.getItem('token')
if (!tokenStr) return next('/login');
next();
});
3.4退出功能
退出功能实现原理
基于token的方式实现退出比较简单,只需要销毁本地的token即可。这样,后续的请求就不会携带token,必须重新登录生成一个新的token之后才可以访问页面。
// 清空token
window.sessionStorage.clear();
// 重定向到login页面
this.$router.push("/login");
处理项目中的ESLint语法错误
在项目根目录下,创建.prettierrc文件
“semi”:false 表示隐藏分号
“singleQuote”:true 表示所有单引号和双引号统一为单引号
对于有安装eslint的同志项目中,会有一个.eslintrc.js文件,关于语法规则中的erro的括号部分,即错误的语法规则,粘贴到.eslintrc.js的rules对象中,设置为
‘错误的语法规则’:0
则eslint会无视该错误的语法规则。
4.主页布局
页面的布局如下:
具体的布局和组件使用可以查看实现主页的基本布局。
随后对Main的内容进行路由设置,
再根据menu数据请求的path字段对侧边栏的路由链接进行改造,
然后再通过路由的形式展示用户列表组件