《叩丁狼积分商城》PC端项目实战
项目介绍
《叩丁狼积分商城》是一个使用vue全家桶构建的PC端SPA商城,主要用于给学员将子级在叩丁狼的积分兑换成商品。
一、项目参考地址【熟悉】
真实项目参考地址:http://sc.wolfcode.cn/
实战项目参考地址:http://codesohigh.com/store-pc/
二、项目UI设计稿及图片资源【熟悉】
1、UI设计稿
链接:https://pan.baidu.com/s/11jI0eKuFNwxCzhYhEAHEGA 提取码:yyds
2、静态图片资源
链接:https://pan.baidu.com/s/1rBqQsxvuB2SpZOCfMs_kmA 提取码:9yos
3、iconfont链接
1、在项目中全局的css引入以下链接:
https://at.alicdn.com/t/font_2730880_ylrio3ahhx.css
2、具体图标名称:
YDUI-复选框(选中)
icon-yduifuxuankuangxuanzhong
YDUI-复选框
icon-yduifuxuankuang
loading
icon-loading
toast-失败_画板 1
icon-toast-shibai_huaban
toast-警告
icon-toast-jinggao
toast _成功
icon-toast_chenggong
3、引用方式
三、PS安装【选装】
这里为电脑没有预装ps的同学提供ps安装包
链接:https://pan.baidu.com/s/1GX3PaRWNFMUY6wqF8NukQg 提取码:hle6
下载打开压缩包, 解压密码为:123456
四、蓝湖【重点】
蓝湖产品设计协作平台是一个服务于产品经理、设计师、工程师的在线协作平台,无缝连接产品、设计、研发流程,旨在降低沟通成本,缩短开发周期,提高工作效率,帮助企业建立科学的工作环境,提升企业的开发效率。
1、注册登录与插件
打开https://lanhuapp.com/,注册并登录,然后创建团队:
点击https://lanhuapp.com/ps?comeFrom=项目列表_右上下载蓝湖ps插件。
下载完成即可安装,安装后重启ps,如果看到:
就代表你已成功安装蓝湖插件。此时,顺便登录账号。
2、上传UI设计稿
首先,打开一张psd设计图,然后选择刚刚创建的团队与项目,选择 1倍像素 的web端设计稿:
点击 上传全部画板 即可。
后续每开发一个页面,可自行按照上述流程将需要用到的设计稿上传,无需一次性上传所有设计图。
五、项目创建【熟悉】
执行 vue create 项目名称 :
按照没有eslint的配置,选择 vue 2、less 、vuex 和 router:
创建完成后,cd到项目中。
六、仓库创建【熟悉】
在 https://gitee.com/ 创建一个空白仓库:
点击 创建 即可。
由于我们已经有本地项目,直接在本地项目的命令行中执行:
完成提交。刷新仓库页面,如果看到仓库已有文件:
表示你已提交成功。
七、默认样式【熟悉】
1、清空默认样式
清空默认样式我们使用 reset-css 。具体使用方法:
然后在项目入口文件 main.js 中引入:
2、定义默认样式
网页中有很多固定的颜色,我们可以抽离出来作为less公共变量。在 src 下,新建 total.less :
然后在需要使用这些变量的组件中的css最顶部引入:
八、配置@指向src【了解】
1、方案一
安装 Path Intellisense插件
打开设置 - 首选项 - 搜索
Path Intellisense- 打开settings.json,添加:
在项目
package.json所在同级目录下创建文件jsconfig.json:
重启vscode
2、方案二
安装 path :
创建 vue.config.js :
九、项目静态资源【了解】
将老师提供的 assets 文件夹放到项目的 src 下。
十、登录滑动拼图验证【了解】
插件参考:https://gitee.com/monoplasty/vue-monoplasty-slide-verify
1、安装插件
2、入口文件引入
3、组件引用
十一、配置axios拦截器【重点】
本项目接口文档地址:积分商城PC【叩丁严选PC项目】 http://www.docway.net/project/1h9xcTeAZzV/share/1hZ5qEe9NVg 阅读密码:zhaowenxian
1、安装 axios 与 qs:
2、在 src 下创建 request>request.js+api.js
api.js
十二、Vuex与提示【重点】
vuex中可以定义三个状态:
创建一个 Toast.vue 组件:
在任何一个组件想要触发这个Toast,需要:
但是每次都这么触发太麻烦,我们用一个 toastFn.js 文件封装一个函数:
如此,在需要调用的地方直接传参即可:
十三、PC微信登录【重点】
1、微信扫码布局与配置
想要实现在登录框中可以扫码登录:
在 public/index.html 的 head 中:
在登录框中代码中添加一个div,这个div是用来存放微信二维码所在的iframe的:
在 api.js 中:
在切换到 微信扫码登录 的事件中:
* 环境变量
上面的process.env.VUE_APP_STATE_URL是环境变量。书写方式:
在项目根目录新建
.env.prod与.env.dev:然后修改
package.json中:重跑项目即可。
当你还没写href的时候,会发现iframe样式是无法改变的,因此我们需要借助 node+css 来实现css转base64:
在 src 下新建 utils 文件夹,并且在其中新建: data-url.js 与 wxlogin.css:
然后控制台运行:
得到一段base64转码字符串:
然后粘贴到 href 中。最终效果:
2、扫码得到code做登录
扫码跳转页面后,我们来到 Header.vue 组件。在 Header.vue 组件的 created 生命周期里,由于在地址栏上可以得到code:
此时要做判断,如果有code,则做请求获取token:
但这样写有个问题,Header组件只会加载一次,如果用户退出登录,在别的页面登录,就无法正常登录了。
3、强制组件更新
由于具有以上描述的情况,我们希望只要路由的 query参数 发生变化,就强制更新一次 Header.vue 组件,这样就能重复触发它的 created,方法如下:
十三、获取用户信息【重点】
在 Header.vue 的 created 中:
十四、手机号登录【重点】
手机号登录之前,需要判断三点:
手机号是否正确
验证码是否填写
滑块拼图是否拼接过
1、手机号校验
新建一个 validate.js 文件:
在提交的事件中直接判断:
2、验证码校验
验证码无法校验填写对了没有,只能判断是否有填写:
3、检验是否完成拼图
4、登录请求
完成了以上的所有校验,就可以点击登录,先配置 api.js:
在判断拼图完成之后:
十五、商品页滚动加载【熟悉】
请参考:https://www.npmjs.com/package/load-more-mczhao
十六、用户中心与购物车界面套用
个人中心的界面:
1、用户中心
新建 views/person/Person.vue :
2、购物车
新建 views/person/Cart.vue:
3、路由配置
4、导航修改
找到 Nav.vue 组件,修改个人中心的当前项判断:
十七、开发小技巧
1、iconfont无法旋转?
iconfont是行内元素,无法添加 transform:rotate() 属性,需要把它转行内块才能旋转。
2、社交平台分享
当我们需要做到社交平台分享时,通常会用 iShare.js 、vue-socialmedia-share 或 vshare。第一个插件对样式的重构性较低,第二个插件一般用于分享到外网,因此比较常用的是 vshare 。
使用方式:
在组件中引入:
然后使用:
data中定义 vshareConfig :
3、路由监听
当你路由更新,当页面没刷新时,需要监听路由:
4、正则表达式替换文本
假设你得到的字符串为str,其中包含html标签,标签中有img,想把img里的 upload 字符串替换为 https://sc.wolfcode.cn/upload ,可以如下操作:
5、个人中心最基本界面
6、重复点击相同路由报错
当我们重复点击相同的路由,就会有以下报错:
这是路由升级导致的vue版本过低报错。解决方案:
在路由文件中加这一段代码:
十八、项目打包
1、将路由中的 mode: history 注释
2、在 vue.config.js 中:
3、如果使用了懒加载,记得将img_loading.gif图片放到相应的位置
十九、图片懒加载
1、安装
2、全局引入与配置
3、设定loading大小
在 App.vue 中:
4、:src --> v-lazy
二十、设置title与favicon.ico
当我们完成项目后,想要在webpack修改 index.html 的title标签,可以在 vue.config.js 中:
如果想改favicon.ico,可以在网上扒一个你想要的,然后替换 public 下的favicon.ico即可。
二十一、作业
【Level-1】完成可达到做网页设计师的水平
day01-day02:仓库新建一个dev分支,首页、全部商品页、个人中心页搭建
【Level-2】完成可达到项目逻辑度最高的水平
day03-day04:独立完成微信扫码登录及手机号登录
【Level-3】完成可达到中级前端工程师的水平
day05-day06:独立完成购物车全选与步进器功能、商品详情页社交平台分享功能
【Level-4】完成可达到高级前端工程师的水平
在day07之前完成项目,项目完成过程中请教同学或老师的次数小于3次,并能在老师讲授每个模块前已自主完成该模块,那么,你就是前端大佬了!
二十二、项目总结
1、项目介绍
《叩丁严选》是一个由vue-cli搭建的PC端SPA商城,该商城主要涉及登录注册、商品列表、商品详情、个人中心、购物车及商品检索等主体功能。该项目主要用于平台用户参与积分兑换商品,是一个中大型的PC端商城项目。
2、项目技术点
使用vue-cli搭建项目,并结合蓝湖+PS进行页面切图,实现对设计稿的高保真还原;
使用axios进行数据请求,并对其进行request拦截封装;
登录采用手机+验证码、手机+密码及微信扫码登录,其中微信扫码登录结合环境变量,调用后端接口实现平台切换验证;
使用localStorage对用户信息和token进行存储;
使用vshare实现将项目分享到第三方社交平台(如:微信、QQ空间等);
使用原生JS在组件mounted中监听滚动,并实现向下滚动加载更多;
使用导航守卫对每个进入个人中心页的路由进行拦截,正则匹配路径后保证有token方能进入该路由;
使用路由降级等方式解决进入重复路由报错的问题;
使用路由监听解决路由跳转而页面不跳转的问题;
给组件绑定key属性,通过修改key值来强制更新组件;
最后更新于
这有帮助吗?












