• 商城作品简介


    闲来无事写了一个最小商城,实现了一个商城的基本功能和基本ui,虽然功能不是很多,用到的知识却不少,借此复习一下和学习一下学过的东西。

     作品视频连接

    代码扔到个人github库:点击这里

    先上作品,首先要说的是服务器,此服务器纯nodejs搭建,用了nodejs最火的框架express,后面一些插件用到再说吧~

    作品分为pc端和移动端,pc端又分为商品页和后台管理页面。

    打开localhost:3000(nodejs默认3000端口),首先展示了页面,普通的商场格式,设计和布局什么的就不说了(比较渣,没有设计,凑合看)

    然后是登陆页面,仿淘宝登陆,输入正确,登陆按钮会启用,后面还有几种登陆方式,到后面再说。登陆页面的账号信息是没有输入到前台,所以视频第一次是输错密码了,没有提示并返回,后面移动端输错,打开了服务器也看到了console.log

    然后是加入购物车了,懒得做商品详情页了,就把加入购物车放到商品处。

    说到商品,主页的商品是由react渲染的(此处没有用redux和es6,是因为我会再用es6+react+redux+react-router写一份作品,此次仅仅是react的简单应用,期待ing)。直接拉取数据,用react组件(web component是现在前端流行趋势,因为耦合度低,代码清晰,纯净,好维护,与其他依赖低等等。react就是其中之一)方式呈现,它的优点就是大量操作dom的时候节省性能,商场不一定要用的。

    ​ 然后是打开购物车界面,用jquery操作全选,删除等等,配合ajax与后台交互。

    其实博主更倾向于用angular做这种操作,原因是angular的数据绑定能减少很多的jq代码,而且angular在大应用的性能非常好。(虽然有很多坑)

    点击结账后跳转成功页面,再到收藏页面没什么说的。(博主太懒,收藏夹、购物车的图片没换)充值也是一个form表单。最后到pc的一个聊天室。这个聊天室是用了h5的websocket新技术,非长轮询的http交换,websocket性能更好。聊天室的实现是node的热门模块socket.io实现的,socket.io+nodejs是当下websocket实现的非常好的方式。

    然后到注册,这个注册表单的验证方式是时事的,每次输入都会验证,错误即会红框并弹错。

    然后是pc的第二部分,后台管理页,输入错误会弹窗,此处没有演示。进入管理页面,整个后台管理都是angular的应用。可能仔细的同学可以看到每次切换并不会刷新页面,这是由node渲染了页面主路由。然后后面的子路由,包括模版都是由angular控制的。页面表格大家也看出管理员的表格和其他的并不一样,第一个表格是用ng-grid渲染(后来改为叫ui-grid)大家也能看到ng-grid的强大之处了,还有好多功能并没有写出来。后面的会员管理,订单管理等等都是拉取的数据库数据。加了操作项,商品页面有分页,也是由angular写的分页。

    商品进货的表单是标准的angular表单验证,输入错误下面就会出现提示,感觉和第一个注册页面没什么区别,但是用angular来写感觉更高大上,哈哈~最主要是代码量减少了一大截。因为angular的双向绑定和一些内置的指令,加上angular的事件系统,这是博主喜欢angular的原因。(事件系统在分页里有用到,别的特效也都有用到)

    最后是移动端的页面,移动端流量真的是得节省,本商城用不到h5的一些移动端接口,也没有用框架,只用了一个移动端功能强大的swiper插件,轮播图插件(pc端的轮播图是自己写的)

    移动端自然页面都要适应一下,因为特意做了移动端,也没有用到css3的相应式设计。视频中,我用chrome模拟了手机端,它就打开了手机端,在node里面我判断了useragent,于是就酱。。

    一些页面也没有必要说了,购物车是手写的逻辑,别的页面也仅仅是视图加了一点处理。移动端最值得说的就是这个图片预加载和点击更新了。(当然有人跟我说人家移动端都是延迟加载,你还预加载了)预加载是为了让页面打开即能开到图片的展示,延迟加载是为了剩流量。而本商城省流量的方法是点击加载,拉取8个商品,点击再继续加载8个。图片加载完之前显示的loading的图片,由于是本地服务器,图片加载快,可能看不到loading图片。点击加载的图片也是采用了预加载。等到商城做到大应用可以考虑把这个点击加载换成下拉加载,这个比较省流量。但小应用就不差那么多了~

    ​另外本商场在css用了sass,用gulp做的前端自动化,webpack配合的react使用。sass是规范化css。gulp和webpack也是前端现在最流行的东西,自动化的流式处理,和打包。顺便一提,数据库是mongodb。

    本商城完全是我一个人写的,耗费了我一个半月的空闲时间,也为此付出了不少心血,希望大家多提意见。

  • 相关阅读:
    VC++ 常用数学函数
    Skin++的使用 (成功在vs2008试过)
    解决switch使用String做参数 (jdk1.7新增),更改jdk版本后报错的问题
    [转]jdk1.7中 新增 switch 使用String 做参数 的实现
    [转]网页版Firebug
    [转]Eclipse导入工程后,XDoclet错误:Missing library: xdoclet1.2.1.jar. Select the home directory for XDoclet. 1.
    SAP related blogs
    [转]SAP FI/CO 模块设置
    如何调用BADI
    [转]一则关于ABAP程序员的趣谈
  • 原文地址:https://www.cnblogs.com/dh-dh/p/4998903.html
Copyright © 2020-2023  润新知