## 前言
>此项目为本人学习Vue过程中的一个练习实战项目,若接口过期可以加我的QQ:445103710
## 学习地址
[传送门](https://www.bilibili.com/video/BV15741177Eh?p=148)
## 收获
- 熟悉了一个完整项目开发的流程
- 学会了组件化、模块化、工程化的开发模式
- 掌握了使用vue-cli脚手架初始化vue.js项目
- 掌握了项目的一些细节优化
## 项目描述
- 项目基于VueCLI3脚手架 + Vue全家桶 + ES6 + Webpack等技术开发
- 项目采用模块化、组件化、工程化的模式开发
- 项目主要分为四大模块:首页 + 分类 + 购物车 + 我的
## 使用的插件或第三方库
- 使用 vue-router 开发单页面
- 使用 vuex 管理应用组件的状态
- 使用 FastClick 解决移动端点击300ms延迟
- 使用 vue-lazyload 实现图片的懒加载
- 使用 axios 的封装从后端拿取数据
- 使用 less 写部分组件的样式
- 使用 better-scroll 实现移动端页面滑动效果
- 使用 vant-ui 组件库构建界面
## 实现的功能
- [x] 首页商品款式的切换
- [x] 分类页切换展示分类商品
- [x] 右下角回到顶部按钮
- [x] 商品加入购物车
- [x] 购物车内商品勾选
## 项目运行
```
# 克隆
git clone https://github.com/weining-zhang/mall.git
# 终端进入项目文件夹
cd mall
# 安装依赖
npm install
# 运行
npm run serve
访问: http://localhost:8080
```
## 项目目录结构
```
src
├─ App.vue
├─ assets 用来存放css文件和项目的一些图片
│ ├─ css
│ │ ├─ base.css 设置项目基本样式
│ │ └─ normalize.css 使不同的浏览器在渲染网页元素的时候形式更统一
│ └─ img
│ ├─ cart 存放购物车页面相关图片
│ │ └─ tick.svg 购物车页面全选按钮图标
│ ├─ common 存放多个页面可能使用到的图片
│ │ ├─ back.svg 商品详情页左上角回退按钮图标
│ │ ├─ collect.svg 首页商品图片下方收藏商品图标
│ │ └─ top.png 首页及商品详情页回到顶部按钮图标
│ ├─ detail 存放商品详情页相关图片
│ │ └─ detail_bottom.png 商品详情页下方客服、店铺、收藏的图标
│ ├─ home 存放首页页面相关图片
│ │ └─ recommend_bg.jpg 首页里‘本周流行’的图片
│ ├─ profile 存放我的信息页面相关图片
│ │ ├─ avatar.svg
│ │ ├─ cart.svg
│ │ ├─ message.svg
│ │ ├─ phone.svg
│ │ ├─ pointer.svg
│ │ ├─ shopping.svg
│ │ └─ vip.svg
│ └─ tabbar 存放首页、分类、购物车、我的页面下方的tabbar相关图片
│ ├─ category.svg
│ ├─ category_active.svg
│ ├─ home.svg
│ ├─ home_active.svg
│ ├─ profile.svg
│ ├─ profile_active.svg
│ ├─ shopcart.svg
│ └─ shopcart_active.svg
├─ common
│ ├─ mixin.js 存放可复用的组件,回到顶部按钮组件放在这
│ └─ utils.js 封装了防抖函数和时间格式化函数
├─ components
│ ├─ common 存放下个项目也可使用的公共组件
│ │ ├─ navbar
│ │ │ └─ NavBar.vue 封装导航栏组件
│ │ ├─ scroll
│ │ │ └─ Scroll.vue 封装better-scroll库组件
│ │ ├─ swiper 封装轮播图组件
│ │ │ ├─ Swiper.vue
│ │ │ ├─ SwiperItem.vue
│ │ │ └─ index.js 导入上面两个组件,整合到一起
│ │ ├─ tabbar 封装首页、分类、购物车、我的页面下方的tabbar组件
│ │ │ ├─ TabBar.vue
│ │ │ └─ TabBarItem.vue
│ │ └─ toast 封装商品详情页加入购物车、购物车为空时点结算时消息弹出的组件
│ │ ├─ Toast.vue
│ └─ content 存放本项目业务相关的公共组件
│ ├─ backTop
│ │ └─ BackTop.vue 封装回到顶部按钮组件
│ ├─ checkButton
│ │ └─ CheckButton.vue 封装购物车页面全选按钮是否被勾选的组件
│ ├─ goods 封装展示商品相关数据的组件
│ │ ├─ GoodsList.vue
│ │ └─ GoodsListItem.vue
│ ├─ mainTabbar tabbar组件再封装到本项目业务相关目录下
│ │ └─ MainTabBar.vue
│ └─ tabControl
│ └─ TabControl.vue 封装首页负责切换展示流行、新款、精选商品的组件
├─ main.js
├─ network 存放网络请求相关的组件
│ ├─ category.js 请求分类页面的数据
│ ├─ detail.js 请求商品详情页的数据,并设计数据结构保存请求到的商品数据
│ ├─ home.js 请求首页相关数据
│ └─ request.js 封装axios
├─ router 存放vue-router相关配置
│ └─ index.js
├─ store 存放vue-x相关
│ ├─ actions.js 从index.js抽取出来的actions,判断添加购物车相关逻辑
│ ├─ getters.js 从index.js抽取出来的getters,获取购物车里有多少种商品
│ ├─ index.js
│ ├─ mutation-types.js 定义一些常量来替代 Mutation 事件类型
│ └─ mutations.js 从index.js抽取出来的mutations,处理添加购物车相关逻辑
├─ screenshots 项目截图
└─ views 存放一些视图组件
├─ cart 购物车页面
│ ├─ Cart.vue 购物车主页面
│ └─ childCompos 购物车主页面下的一些子组件
│ ├─ CartBottomBar.vue 购物车底部处理结算一行的相关组件
│ ├─ CartList.vue 主要处理全选按钮逻辑
│ └─ CartListItem.vue 展示购物车的商品数据
├─ category 分类页面
│ ├─ Category.vue 购物车主页面
│ └─ childCompos
│ └─ CategoryContent.vue 展示分类页面左部分列表和右部分商品数据
├─ detail 商品详情页
│ ├─ Detail.vue
没有合适的资源?快使用搜索试试~ 我知道了~
基于Vue全家桶开发的电商购物App项目-mall.zip
共92个文件
vue:34个
svg:19个
js:18个
需积分: 0 0 下载量 140 浏览量
2023-11-04
21:41:06
上传
评论
收藏 1.31MB ZIP 举报
温馨提示
基于Vue全家桶开发的电商购物App项目-mall
资源推荐
资源详情
资源评论
收起资源包目录
基于Vue全家桶开发的电商购物App项目-mall.zip (92个子文件)
mall-master
.editorconfig 147B
.browserslistrc 30B
babel.config.js 198B
src
screenshots
detail.png 317KB
category.png 145KB
my.png 29KB
cart.png 87KB
home1.png 253KB
home2.png 305KB
App.vue 429B
store
mutation-types.js 78B
mutations.js 450B
actions.js 745B
getters.js 128B
index.js 353B
assets
img
cart
tick.svg 410B
detail
detail_bottom.png 8KB
cart.png 3KB
profile
shopping.svg 3KB
message.svg 1KB
phone.svg 2KB
cart.svg 2KB
vip.svg 3KB
avatar.svg 2KB
pointer.svg 2KB
home
recommend_bg.jpg 57KB
common
arrow-left.svg 520B
back.svg 566B
collect.svg 2KB
top.png 3KB
tabbar
profile_active.svg 924B
shopcart.svg 881B
category.svg 902B
profile.svg 924B
home.svg 937B
category_active.svg 902B
shopcart_active.svg 881B
home_active.svg 937B
css
normalize.css 6KB
base.css 1KB
main.js 629B
components
common
navbar
NavBar.vue 556B
toast
Toast.vue 986B
index.js 539B
scroll
Scroll.vue 1KB
swiper
Swiper.vue 6KB
index.js 101B
SwiperItem.vue 243B
tabbar
TabBarItem.vue 1KB
TabBar.vue 339B
content
backTop
BackTop.vue 346B
checkButton
CheckButton.vue 462B
mainTabbar
MainTabBar.vue 1KB
goods
GoodsList.vue 524B
GoodsListItem.vue 2KB
tabControl
TabControl.vue 981B
common
utils.js 805B
const.js 0B
mixin.js 353B
network
request.js 748B
category.js 243B
detail.js 1KB
home.js 261B
router
index.js 815B
views
cart
Cart.vue 1KB
childCompos
CartListItem.vue 2KB
CartList.vue 857B
CartBottomBar.vue 2KB
category
Category.vue 2KB
childCompos
CategoryContent.vue 2KB
detail
childCompos
DetailShopInfo.vue 3KB
DetailGoodsInfo.vue 2KB
DetailSwiper.vue 556B
DetailParamInfo.vue 1KB
DetailBaseInfo.vue 2KB
DetailBottomBar.vue 2KB
DetailNavBar.vue 1KB
DetailCommentInfo.vue 2KB
Detail.vue 9KB
profile
Profile.vue 3KB
home
childCompos
FeatureView.vue 296B
HomeSwiper.vue 696B
RecommendView.vue 724B
Home.vue 5KB
LICENSE 1KB
package.json 681B
public
favicon.ico 3KB
index.html 651B
package-lock.json 428KB
vue.config.js 287B
.gitignore 230B
README.md 10KB
共 92 条
- 1
资源评论
武昌库里写JAVA
- 粉丝: 3456
- 资源: 1986
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功