① 在这里,只有DashBoard在界面刷新的时候就加载,其余界面采用懒加载的方式,在点击跳转或者访问的时候才进行加载,便于提升性能。
② dashboard一级路由存在的必要性:为后续注册登录等功能提准备。
③ 不直接export default new Router的原因:便于做路由守卫
- 效果


7. 集成UI组件库Vant
- 安装vant
npm i vant –S - 安装babel-plugin-impor支持vant局部引用
npm i babel-plugin-import -D - 在babel.config.js中进行配置

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

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

8. 集成Vant底部Tabbar标签栏
直接借助官网API快速引入组件

- active 当前选中标签的索引 Number
- active-color 选中标签的颜色 String #000000
- inactive-color 未选中标签的颜色 String #ffffff
- replace to 路由跳转
- 图片属性 :src=“props.active ? icon.active : icon.inactive” 设置选中/非选中图片
9. 配置首页界面
(1)在Home.vue中,通过axios请求网络数据
- 安装axios
npm i axios -S,并且封装axios网络请求 - 在service文件夹中,新建子文件夹api,并在api中新建文件index.js。负责汇总各种接口。

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

- 在ajax.js中封装axios网络请求,并以函数ajax的形式向外界暴露
- 在index.js中,从ajax.js中引入ajax方法

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

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

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


(2)顶部地址定位、搜索栏
- 在home文件夹内,新建子文件夹components,存放home.vue的子组件

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

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

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


(3)轮播图(借助Swipervue-awesome-swiper实现)
- 在home子文件夹components内新建子文件夹sowing,并在sowing文件夹中新建Sowing.vue

- 安装vue-awesome-swiper
npm install - 配置轮播图
注意:
① 下载最新版本的vue-awesome-swiper可能按照官方文档有些功能无法使用,可以直接下载低版本
② 配置分页、自动播放等功能无效的话,引入的时候加入以下代码。其他功能无效也可以试一下这个。
import Swiper2, {Navigation, Pagination, Autoplay} from ‘swiper’;
Swiper2.use([Navigation, Pagination, Autoplay]);

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

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



(4)中部导航nav
- 在home子文件夹components内新建子文件夹nav,并在nav文件夹中新建Nav.vue

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


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



(5)限时抢购
- 在home子文件夹components内新建子文件夹flashSale,并在flashSale文件夹中新建FlashSale.vue和FlashSaleItem.vue

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



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



(6)配置猜你喜欢静态界面
- 在home子文件夹components内新建子文件夹youLike,并在youLike文件夹内新建YourLike.vue和YourLikeItem.vue

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



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



(7)返回顶部组件
- 在home子文件夹components内新建子文件夹markPage,并在markPage文件夹内新建MarkPage.vue

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


- 在父组件Home.vue中定义事件,并以props的方式传递给MarkPage.vue。并通过属性showBackStatus控制MarkPage是否显示。
- 判断是否显示返回顶部按钮是一个可能全局都要使用的事件。所以将其抽出来。
① 在config文件夹中,新建global.js
② 在global.js中写滚动、触摸监听代码,并在满足条件的时候执行回调函数。

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

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

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

10. 配置分类界面
(1)新建文档
新建一下文件目录,并在对应子文件下新建vue组件

(2)在created钩子中请求数据
- 首先,要在server文件夹下的api文件夹下的index.js中,封装数据请求方法

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

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

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

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

- 处理左侧推荐导航栏点击事件
① 导航栏样式处理
选中样式绑定在selected类上,通过对不同li标签删除添加class为selected即可实现更换
样式
通过给li标签绑定点击事件,更改currentIndex来更改当前具有selected类名的li标签,同时借助better-scroll中的控制滚动位置,同时,获取新的右侧数据

③ 与右边联动展示
(5)搭建右侧界面
- 将ContentView静态界面和ProductItem静态界面放到对应vue中,并在ContentView.vue中引入ProductItem.vue,在Category.vue中引入ContentView.vue



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



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

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


(2)✨✨✨使用vuex管理购物车数据✨✨✨
- 在store中新建index.js,并在main中引入

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

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

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

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

- 在mutations中实现添加方法

- 在界面上进行操作,调用ADD_GOODS添加商品方法
① 向购物车中添加的事件很多地方都要调用,因此借助消息订阅(pubsub-js),在组件中跨级通信。
② 安装pubsub-jsnpm install pubsub-js -S
③ 在Home.vue中,监听添加到购物车消息

④ 在YourLikeItem.vue中发布消息

⑤ 其他需要添加到购物车的地方操作相同
(3)借助vant中的反馈组件Toast文字提示,提示用户添加成功
- 在vant.js中引入

- 在需要提示的地方使用

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

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

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


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


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

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

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

(10)商品单选事件处理
- 首先在mutations中定义单选事件
- 在Cart.vue中对单选a标签进行事件绑定
(11)商品全选事件处理
- 首先在mutations中定义全选事件
- 在cart中使用计算属性selectedAll标识是否全选,并通过改属性控制是否全选点击事件

(12)总价计算
利用计算属性,通过shopCart中checked为true的数据,计算商品总价
(13)去结算数量
通过计算属性,计算选中的商品数量

(14)清空购物车
- 在mutations中定义清空购物车方法

- 在Cart.vue中引入并使用清空购物车方法

12. 配置订单界面

(1)配置填写订单路由
- 填写订单界面应该是和dashboard平行的,所以在views目录下新建order子文件夹,并在order文件夹下新建Order.vue
- 在router文件夹内的index.js中配置路由
- 在购物车中点击去结算的时候,转到订单界面
将去结算的a标签改为router-link标签,并用tag标识其原本标签名,并用to表示其跳转路由

- 引入NavBar实现导航栏
① 在vant.js中引入NavBar

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

- 引入ContactCard 实现收货地址
① 在vant.js中引入ContactCard

② 在Order.vue中进行引入配置
(2)配置我的地址界面
- 在order文件夹下,新建children文件夹,children文件夹下新建MyAddress.vue

- 配置路由

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

- 引入vant组件AddressList实现我的地址
① 在vant.js中引入AddressList

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

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

(3)配置地址编辑界面和配置新增地址界面
- 在MyAddress.vue同级目录下,新建children文件夹,并在children文件夹内新建AddAddress.vue和EditAddress.vue

- 在index.js中配置路由

- 借助AddressEdit实现编辑地址和新增地址
① 引入AddressEdit

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

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

(4)配置下方Cell单元格 —— 借助vant中Cell组件
- 在vant.js中引入Cell和CellGroup

- 在Order.vue中进行定制
① 送达时间


② 商品展示

③ 支付方式


④ 备注


⑤ 商品金额、配送费


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

- 在Order.vue中使用


13. 配置我的界面
(1) 导航 —— vant的nav-bar


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


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


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

(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)短信验证码、手机验证码登录
- 在service/api/index.js中,实现接口
- 在Login.vue中调用接口
- 调用登录接口

- 登录成功后,将用户信息保存到本地
① 在vuex中实现将用户信息保存到本地以及获取用户信息的方法
(2)🎡🎡🎡🎡🎡异步操作不可以使用mutations了,需要使用actions是🎡🎡🎡🎡🎡
手机号码验证登录的时候是异步操作了,不能直接通过mutations操作vuex,必须通过actions异步转同步。
- 在actions中定义同步方法,并调用mutations中的异步方法

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

16. 账号密码登录
- 页面配置数据与input绑定
- 点击登录判断有没有值

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

- Login中调用方法

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

18. 退出登录实现
- 新增界面
- 配置路由
- 界面中引用,配置转场动画
- 在service/api/index中实现自动登录/退出登录实现

- 在mutations中实现重置用户数据

- 在UserCenter中实现退出登录
- 在dashBoard中对用户数据进行同步
① 在actions中实现获取用户信息自动登录接口
② 在DashBoart.vue中实现自动登录
19. 购物车与用户角色进行绑定
(1)设置登录后才能向购物车中添加数据

(2)商品添加到购物车后,首先将商品同步到服务器,再存储到本地
- 定义添加到购物车接口
- 在添加购物车的时候,将商品存放在本地之前,首先将商品同步到服务器


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

20. 购物车优化
(1)自动登录
从服务器获取用户购物车数据,进行本地化并在购物车中显示

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

(3)清空购物车

21. 用户地址相关
(1)地址相关接口

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

(3)新增地址

(4)编辑地址
- 在改变路由的时候,通过拼接url传递参数

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

- 将传递过来的信息在编辑界面显示——通过addressInfo绑定
- 修改地址
- 删除地址
(5)选择地址后放到填写订单界面


22. 我的订单界面完善
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。


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

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)
最后


资料过多,篇幅有限,需要文中全部资料可以点击这里免费获取前端面试资料PDF完整版!
自古成功在尝试。不尝试永远都不会成功。勇敢的尝试是成功的一半。
ext_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0thaVNhckg=,size_16,color_FFFFFF,t_70#pic_center)

22. 我的订单界面完善
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
[外链图片转存中…(img-3sw21rn1-39)]
[外链图片转存中…(img-ntYjJ11f-40)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
[外链图片转存中…(img-ZCd1OVbk-40)]
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)
最后
[外链图片转存中…(img-Ibnu8HfG-40)]
[外链图片转存中…(img-A8XodEjx-40)]
资料过多,篇幅有限,需要文中全部资料可以点击这里免费获取前端面试资料PDF完整版!
自古成功在尝试。不尝试永远都不会成功。勇敢的尝试是成功的一半。



版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/27865.html