1.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组件并实现路由重定向

使用less语法对Login.vue进行css设置

使用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字段对侧边栏的路由链接进行改造
然后再通过路由的形式展示用户列表组件

  • 2
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sheldon一蓑烟雨任平生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值