实战Vue:基于Vue的移动端购物商城

在这里插入图片描述

① 在这里,只有DashBoard在界面刷新的时候就加载,其余界面采用懒加载的方式,在点击跳转或者访问的时候才进行加载,便于提升性能。

② dashboard一级路由存在的必要性:为后续注册登录等功能提准备。

③ 不直接export default new Router的原因:便于做路由守卫

  1. 效果

在这里插入图片描述

在这里插入图片描述

7. 集成UI组件库Vant


  1. 安装vant npm i vant –S

  2. 安装babel-plugin-impor支持vant局部引用 npm i babel-plugin-import -D

  3. 在babel.config.js中进行配置

在这里插入图片描述

  1. 在plugins文件夹下,新建vant.js。配置引入不同的vant组件。

在这里插入图片描述

  1. 在main.js中引入vant.js。需要引入什么组件直接在vant.js中做修改即可。

在这里插入图片描述

8. 集成Vant底部Tabbar标签栏


直接借助官网API快速引入组件

在这里插入图片描述

  1. active 当前选中标签的索引 Number

  2. active-color 选中标签的颜色 String #000000

  3. inactive-color 未选中标签的颜色 String #ffffff

  4. replace to 路由跳转

  5. 图片属性 :src=“props.active ? icon.active : icon.inactive” 设置选中/非选中图片

9. 配置首页界面


(1)在Home.vue中,通过axios请求网络数据

  1. 安装axios npm i axios -S,并且封装axios网络请求

  2. 在service文件夹中,新建子文件夹api,并在api中新建文件index.js。负责汇总各种接口。

在这里插入图片描述

  1. 在api文件夹中新建ajax.js

在这里插入图片描述

  1. 在ajax.js中封装axios网络请求,并以函数ajax的形式向外界暴露在这里插入图片描述

  2. 在index.js中,从ajax.js中引入ajax方法

在这里插入图片描述

  1. 在index.js中,定义接口基础路径

在这里插入图片描述

  1. 在index.js中,定义getHomeData方法,该方法是请求主页的数据,为get方法,拼接完整URL调用ajax方法发起axios的get请求,并向外界暴露该方法。

在这里插入图片描述

  1. 在Home.vue中,引入数据请求方法,并在创建组件完成后的created钩子选项中发起ajax请求。

在这里插入图片描述

在这里插入图片描述

(2)顶部地址定位、搜索栏

  1. 在home文件夹内,新建子文件夹components,存放home.vue的子组件

在这里插入图片描述

  1. 在子文件夹components中新建header文件夹,在header文件夹内新建Header.vue组件

在这里插入图片描述

  1. 在Header.vue中将写好的html即样式拷贝过来

在这里插入图片描述

  1. 在Home.vue中引入组件Header.vue

在这里插入图片描述

在这里插入图片描述

(3)轮播图(借助Swipervue-awesome-swiper实现)

  1. 在home子文件夹components内新建子文件夹sowing,并在sowing文件夹中新建Sowing.vue

在这里插入图片描述

  1. 安装vue-awesome-swiper npm install

  2. 配置轮播图

注意:

① 下载最新版本的vue-awesome-swiper可能按照官方文档有些功能无法使用,可以直接下载低版本

② 配置分页、自动播放等功能无效的话,引入的时候加入以下代码。其他功能无效也可以试一下这个。

import Swiper2, {Navigation, Pagination, Autoplay} from ‘swiper’;

Swiper2.use([Navigation, Pagination, Autoplay]);

在这里插入图片描述

  1. 如果想在组件中使用或者控制轮播图,可以在监听computer中对swiper进行监听,并在组件的其他地方使用。

在这里插入图片描述

  1. 将首页的数据传输到轮播图组件中,并进行渲染

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

(4)中部导航nav

  1. 在home子文件夹components内新建子文件夹nav,并在nav文件夹中新建Nav.vue

在这里插入图片描述

  1. 将静态界面放在Nav.vue中,并在Home.vue中引入

在这里插入图片描述

在这里插入图片描述

  1. 将Home.vue中请求到的数据通过props传递到Nav.vue,并进行遍历展示

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

(5)限时抢购

  1. 在home子文件夹components内新建子文件夹flashSale,并在flashSale文件夹中新建FlashSale.vue和FlashSaleItem.vue

在这里插入图片描述

  1. 将静态界面放在FlashSale.vue和FlashSaleItem.vue中,并在FlashSale中引入FlashSaleItem,在Home.vue中引入FlashSale

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  1. 将Home.vue中请求到的数据通过props传递到FlashSale.vue,再传递到FlashSaleItem.vue,并进行遍历展示

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

(6)配置猜你喜欢静态界面

  1. 在home子文件夹components内新建子文件夹youLike,并在youLike文件夹内新建YourLike.vue和YourLikeItem.vue

在这里插入图片描述

  1. 将静态界面放在YourLike.vue和YourLikeItem.vue中,并在YourLike中引入YourLikeItem,在Home.vue中引入YourLike

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  1. 将Home.vue中请求到的数据通过props传递到YourLike.vue,再传递到YourLikeItem.vue,并进行遍历展示

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

(7)返回顶部组件

  1. 在home子文件夹components内新建子文件夹markPage,并在markPage文件夹内新建MarkPage.vue

在这里插入图片描述

  1. 将返回顶部SVG静态页面放到MarkPage.vue中,并在Home.vue中引入

在这里插入图片描述

在这里插入图片描述

  1. 在父组件Home.vue中定义事件,并以props的方式传递给MarkPage.vue。并通过属性showBackStatus控制MarkPage是否显示。

  2. 判断是否显示返回顶部按钮是一个可能全局都要使用的事件。所以将其抽出来。

① 在config文件夹中,新建global.js

② 在global.js中写滚动、触摸监听代码,并在满足条件的时候执行回调函数。

在这里插入图片描述

③ 在Home.vue中,引入global.js,并在created钩子中进行监听,通过判断是否需要显示返回顶部按钮,设置showBackStatus值,控制是否需要显示。

在这里插入图片描述

④ 在global.js中,写缓动函数

在这里插入图片描述

⑤ 在Home.vue中引入animate动画,并在点击事件中调用。

在这里插入图片描述

10. 配置分类界面


(1)新建文档

新建一下文件目录,并在对应子文件下新建vue组件

在这里插入图片描述

(2)在created钩子中请求数据

  1. 首先,要在server文件夹下的api文件夹下的index.js中,封装数据请求方法

在这里插入图片描述

  1. 在界面中引入接口,并使用async 和 await将异步函数转化为同步函数执行后续操作

在这里插入图片描述

(3)将Header.vue作为单独组件,在Category.vue中引入

在这里插入图片描述

(4)左侧推荐导航栏

  1. 左侧推荐导航栏基本没有扩展性,直接在Catergory.vue中写即可。同时,借助better-scroll进行滚动。

在这里插入图片描述

  1. 对请求下来的数据进行遍历,动态加载渲染左侧li标签

在这里插入图片描述

  1. 处理左侧推荐导航栏点击事件

① 导航栏样式处理

选中样式绑定在selected类上,通过对不同li标签删除添加class为selected即可实现更换

样式

在这里插入图片描述 通过给li标签绑定点击事件,更改currentIndex来更改当前具有selected类名的li标签,同时借助better-scroll中的控制滚动位置,同时,获取新的右侧数据

在这里插入图片描述

③ 与右边联动展示

(5)搭建右侧界面

  1. 将ContentView静态界面和ProductItem静态界面放到对应vue中,并在ContentView.vue中引入ProductItem.vue,在Category.vue中引入ContentView.vue

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  1. 将Category.vue中请求到的数组传递到子组件中,并进行v-for显示即可

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3. 如果想按照价格排序,可以定义一个新的数组,存储

在这里插入图片描述

11. 配置购物车界面


(1)将购物车静态界面放到Cart.vue中

在这里插入图片描述

在这里插入图片描述

(2)✨✨✨使用vuex管理购物车数据✨✨✨

  1. 在store中新建index.js,并在main中引入

在这里插入图片描述

  1. 在store文件夹下新建state.js(数据)、mutations(同步操作)、mutations-type(约束名称)、actions(异步操作)、getters(与state中数据相关的计算属性)。将vuex进行拆分。

在这里插入图片描述

并在index.js中进行汇总输出

在这里插入图片描述

  1. 在state.js中定义购物车商品对象

在这里插入图片描述

  1. 在mutations-type中定义方法名称

在这里插入图片描述

  1. 在mutations中实现添加方法

在这里插入图片描述

  1. 在界面上进行操作,调用ADD_GOODS添加商品方法

① 向购物车中添加的事件很多地方都要调用,因此借助消息订阅(pubsub-js),在组件中跨级通信。

② 安装pubsub-jsnpm install pubsub-js -S

③ 在Home.vue中,监听添加到购物车消息

在这里插入图片描述

④ 在YourLikeItem.vue中发布消息

在这里插入图片描述

⑤ 其他需要添加到购物车的地方操作相同

(3)借助vant中的反馈组件Toast文字提示,提示用户添加成功

  1. 在vant.js中引入

在这里插入图片描述

  1. 在需要提示的地方使用

在这里插入图片描述

(4)定义购物车数据本地化的接口

在这里插入图片描述

(5)因为购物车有一个数量标志要试试变化,所以在初始DashBoard的时候,就应该调用INIT_SHOP_CART初始化购物车

在这里插入图片描述

(6)增加计算属性,通过计算shopCart每个shop的num和,利用vant的tabbar的info属性,控制购物车数量商标

在这里插入图片描述

在这里插入图片描述

(7)在购物车界面遍历shopCart并在界面上显示

在这里插入图片描述

在这里插入图片描述

(8)购物车数量加减操作

  1. 首先在mutations.js中定义将商品移出购物车的方法——即商品数量为1仍然减得操作

在这里插入图片描述

  1. 在Cart.vue中配置删除商品的方法

在这里插入图片描述

(9)直接将ADD_GOODS引入到Cart.vue中进行商品数量的 增加

在这里插入图片描述

(10)商品单选事件处理

  1. 首先在mutations中定义单选事件在这里插入图片描述

  2. 在Cart.vue中对单选a标签进行事件绑定在这里插入图片描述

(11)商品全选事件处理

  1. 首先在mutations中定义全选事件在这里插入图片描述

  2. 在cart中使用计算属性selectedAll标识是否全选,并通过改属性控制是否全选点击事件

在这里插入图片描述

(12)总价计算

利用计算属性,通过shopCart中checked为true的数据,计算商品总价在这里插入图片描述

(13)去结算数量

通过计算属性,计算选中的商品数量

在这里插入图片描述

(14)清空购物车

  1. 在mutations中定义清空购物车方法

在这里插入图片描述

  1. 在Cart.vue中引入并使用清空购物车方法在这里插入图片描述

12. 配置订单界面


(1)配置填写订单路由

  1. 填写订单界面应该是和dashboard平行的,所以在views目录下新建order子文件夹,并在order文件夹下新建Order.vue在这里插入图片描述

  2. 在router文件夹内的index.js中配置路由在这里插入图片描述

  3. 在购物车中点击去结算的时候,转到订单界面

将去结算的a标签改为router-link标签,并用tag标识其原本标签名,并用to表示其跳转路由在这里插入图片描述

在这里插入图片描述

  1. 引入NavBar实现导航栏

① 在vant.js中引入NavBar

在这里插入图片描述

② 在Order.vue中进行引入配置在这里插入图片描述在这里插入图片描述

  1. 引入ContactCard 实现收货地址

① 在vant.js中引入ContactCard

在这里插入图片描述

② 在Order.vue中进行引入配置在这里插入图片描述

(2)配置我的地址界面

  1. 在order文件夹下,新建children文件夹,children文件夹下新建MyAddress.vue

在这里插入图片描述

  1. 配置路由

在这里插入图片描述

  1. 在我的订单中,实现点击选择收货地址跳转路由

在这里插入图片描述

  1. 引入vant组件AddressList实现我的地址

① 在vant.js中引入AddressList

在这里插入图片描述

② 在MyAddress.vue中进行引入配置

在这里插入图片描述

③ MyAddress.vue中,对div进行绝对定位,结合Order.vue中的transition,形成动画效果

在这里插入图片描述

(3)配置地址编辑界面和配置新增地址界面

  1. 在MyAddress.vue同级目录下,新建children文件夹,并在children文件夹内新建AddAddress.vue和EditAddress.vue

在这里插入图片描述

  1. 在index.js中配置路由

在这里插入图片描述

  1. 借助AddressEdit实现编辑地址和新增地址

① 引入AddressEdit

在这里插入图片描述

② 在EditAddress.vue中配置并实现编辑地址(添加地址类似)

在这里插入图片描述

③ 在我的地址中增加路由跳转

在这里插入图片描述

(4)配置下方Cell单元格 —— 借助vant中Cell组件

  1. 在vant.js中引入Cell和CellGroup

在这里插入图片描述

  1. 在Order.vue中进行定制

① 送达时间

在这里插入图片描述在这里插入图片描述

② 商品展示在这里插入图片描述在这里插入图片描述

③ 支付方式

在这里插入图片描述

在这里插入图片描述

④ 备注

在这里插入图片描述在这里插入图片描述

⑤ 商品金额、配送费

在这里插入图片描述

在这里插入图片描述

(5)配置下方提交栏——SubmitBar 提交订单栏

  1. 引入SubmitBar

在这里插入图片描述

  1. 在Order.vue中使用

在这里插入图片描述

在这里插入图片描述

13. 配置我的界面


(1) 导航 —— vant的nav-bar

在这里插入图片描述

在这里插入图片描述

(2)头像及其他信息 —— vant的cell

在这里插入图片描述

在这里插入图片描述

(3)我的订单、查看所有订单 —— vant的cell

在这里插入图片描述

在这里插入图片描述

(4)待支付、待收货、待评价、售后/退款 —— vant的Grid, GridItem

  1. 引入在这里插入图片描述

  2. 使用

在这里插入图片描述

(5) 我的优惠券、我的收货地址、联系客服、意见反馈、下载APP —— vant中的cell

在这里插入图片描述

在这里插入图片描述

14. 用户角色配置


(1)建立选择登陆界面、登录界面及配置选择登陆界面、登录界面路由

views新建文件夹login,并在子文件夹login中新建Login.vue和SelectLogin.vue,并将静态界面配置好

在这里插入图片描述

(2)在vuex的state中存储用户数据,并存储在本地

首先在state中,在vuex中声明userInfo数据。通过判断本地userInfo中是否存在token数据,来判断是否需要登录。在这里插入图片描述

(3)在购物车中进行判断是否显示选择登陆方式界面

在这里插入图片描述

(4)在我的中进行判断是否显示选择登陆方式界面

在这里插入图片描述

(5)给Login.vue登录界面配置独立路由

在这里插入图片描述

(6)在选择登陆方式界面,给手机登录配置路由跳转,并设置tag

在这里插入图片描述

(7)通过属性及时间控制登录界面方式及密码显示方式在这里插入图片描述

15. 用户中心接口


(1)短信验证码、手机验证码登录

  1. 在service/api/index.js中,实现接口在这里插入图片描述

  2. 在Login.vue中调用接口在这里插入图片描述

  3. 调用登录接口

在这里插入图片描述

  1. 登录成功后,将用户信息保存到本地

① 在vuex中实现将用户信息保存到本地以及获取用户信息的方法在这里插入图片描述

(2)🎡🎡🎡🎡🎡异步操作不可以使用mutations了,需要使用actions是🎡🎡🎡🎡🎡

手机号码验证登录的时候是异步操作了,不能直接通过mutations操作vuex,必须通过actions异步转同步。

  1. 在actions中定义同步方法,并调用mutations中的异步方法

在这里插入图片描述

  1. 在Login.vue中,使用异步方法

在这里插入图片描述

16. 账号密码登录


  1. 页面配置数据与input绑定在这里插入图片描述

  2. 点击登录判断有没有值

在这里插入图片描述

  1. service/api/index.js中实现pwdLogin用户名、密码登录方法

在这里插入图片描述

  1. Login中调用方法

在这里插入图片描述

17. 我的界面对本地数据进行渲染


在这里插入图片描述

18. 退出登录实现


  1. 新增界面在这里插入图片描述

  2. 配置路由在这里插入图片描述

  3. 界面中引用,配置转场动画在这里插入图片描述

  4. 在service/api/index中实现自动登录/退出登录实现

在这里插入图片描述

  1. 在mutations中实现重置用户数据

在这里插入图片描述

  1. 在UserCenter中实现退出登录在这里插入图片描述

  2. 在dashBoard中对用户数据进行同步

① 在actions中实现获取用户信息自动登录接口在这里插入图片描述

② 在DashBoart.vue中实现自动登录在这里插入图片描述

19. 购物车与用户角色进行绑定


(1)设置登录后才能向购物车中添加数据

在这里插入图片描述

(2)商品添加到购物车后,首先将商品同步到服务器,再存储到本地

  1. 定义添加到购物车接口在这里插入图片描述

  2. 在添加购物车的时候,将商品存放在本地之前,首先将商品同步到服务器

在这里插入图片描述在这里插入图片描述

(3)退出登录的时候清空购物车

在这里插入图片描述

20. 购物车优化


(1)自动登录

从服务器获取用户购物车数据,进行本地化并在购物车中显示

在这里插入图片描述

(2)商品修改从服务器同步修改

在这里插入图片描述

(3)清空购物车

在这里插入图片描述

21. 用户地址相关


(1)地址相关接口

在这里插入图片描述

(2)选择地址获取账户地址并显示

在这里插入图片描述

(3)新增地址

在这里插入图片描述

(4)编辑地址

  1. 在改变路由的时候,通过拼接url传递参数

在这里插入图片描述

获取的时候通过this.$route.query获取参数

在这里插入图片描述

  1. 将传递过来的信息在编辑界面显示——通过addressInfo绑定在这里插入图片描述

  2. 修改地址在这里插入图片描述

  3. 删除地址在这里插入图片描述

(5)选择地址后放到填写订单界面

在这里插入图片描述

在这里插入图片描述

22. 我的订单界面完善


自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

最后

前端CSS面试题文档,JavaScript面试题文档,Vue面试题文档,大厂面试题文档,需要的读者可以戳这里获取!

GVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0thaVNhckg=,size_16,color_FFFFFF,t_70#pic_center)

在这里插入图片描述

22. 我的订单界面完善


自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

[外链图片转存中…(img-uSp9Pkjc-1713259057813)]

[外链图片转存中…(img-N62x9Jwb-1713259057813)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

[外链图片转存中…(img-zvG90r0x-1713259057814)]

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

最后

前端CSS面试题文档,JavaScript面试题文档,Vue面试题文档,大厂面试题文档,需要的读者可以戳这里获取!

[外链图片转存中…(img-xViezX68-1713259057814)]

[外链图片转存中…(img-bqHovH5e-1713259057814)]

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
基于Vue实现移动端小米应用商城页面需要进行以下步骤: 1. 界面设计:根据小米应用商城的界面设计需求,使用Vue框架中的组件库和样式预处理器进行页面的布局和设计。可以使用小米官方提供的UI组件库或者其他第三方组件库来提高开发效率和界面质量。 2. 路由设置:使用Vue Router来设置页面的路由。根据小米应用商城的功能需求,在路由配置中设置每一个页面对应的路由路径和组件,实现页面之间的切换和导航。 3. 数据获取和展示:使用Vue的响应式数据绑定功能,结合小米应用商城的数据接口,通过网络请求获取数据,并将数据进行展示。可以使用Vue的生命周期钩子函数来进行数据的初始化和更新。 4. 搜索和筛选:实现小米应用商城中的搜索和筛选功能。使用Vue实现搜索框的输入和结果展示的实时更新,并根据用户的筛选条件实时显示相应的应用列表。 5. 购物车功能:实现小米应用商城中的购物车功能。使用Vue的状态管理库(如Vuex)来管理购物车中的商品信息,实现商品的添加、删除、数量修改等操作,并能够计算出购物车中商品的总价。 6. 移动适配:使用Vue的移动适配方案(如vw/vh、rem)来实现页面的适配和响应式布局。根据不同的屏幕尺寸和设备类型,设置相应的样式规则,以确保页面在不同设备上能够良好展示。 7. 动画和交互:使用Vue的过渡效果和动画库来实现页面切换、菜单展开等动画效果,提升用户体验。同时,根据小米应用商城的交互功能需求,合理利用Vue的指令、事件绑定等特性来实现用户的点击、滑动、拖拽等交互操作。 通过以上步骤,可以基于Vue框架实现移动端小米应用商城页面,并达到用户友好、界面美观和功能完备的目标。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值