从移动客户端转h5开发这一个月左右以来,给我最大的感触就是两者之间本质没有任何区别,为了证明我说的这一点,我将用移动客户端来类比h5,来"证明"我说的两者没有任何本质区别。
看到下面这样一个页面,你能够直接肯定这是一个h5还是一个app原生页吗?答案肯定是你不能,我之前在做移动端app的时候,也用原生做过这样的页面。
当然登录页不是一个简单的事,这里只想说第三方登录,比如QQ或者微信登录,两端所做的事情是及其类似,比如,我们某一接口出发了登录态校验,发现用户没有登录态:
程序的做法
携带这些信息去请求,后台server就认识你是一个有身份的人啦。redirect_url
和jump_url
,redirect_url告知你去请求这个地址已获取登录太,这个实际上会触发你拉起微信登录或者手Q登录,微信或者手Q那边就会给你中cookie
,然后jump_url会回到你刚刚发生请求的那个页(一般来说会是这样的,不过因为refer不能回略去一些params会略有不同),此时你再次发送请求的时候,就可以携带cookie中的信息去后台请求,此时你也是一个有身份的人了。可以看到大同小异,都是要拿到身份校验信息存储在本地,然后去服务端请求,所不同的是,cookie是别人帮我们写的,而客户端是我们自己写的pref。
另外补充一下,请求的时候,cookie信息带给服务器那边,如果使用axios,
withCredentials: true // 允许携带cookie】
加上以上代码可以自动为我们带cookie请求,原生ajax请求方式请查阅资料了解。
原生界面上的实现通常来说是要我们手撸代码的,然后在h5这边就略有不同了,不知道是因为我们团队的原因还是业界都是如此,我们这边有重构设计师,因此拿到我们手上的html已经配备了css了,反正还原度这方面我们完全不同担心,所做的工作自然就是在里面填充各种数据了,那么如果没有重构设计师怎么办,那就有点头疼了,但是套路依然是哪个套路,html+css来实现sketch输出的那个效果即可,本质上和我们在原生上撸界面没有任何区别。
当然从动效上来看的话:
原生中拿Android来说是使用intent这种方式来跳转,后面出现了一些路由框架之后,貌似这个又顺利的回到了web上来了,但从本质上来看,依旧是找到某个资源,然后定位到资源上去。
当然,从数据的传递上来看:
从页面栈上来看:
原生APP显然要尴尬的多,出现了问题,一般来说有两种方式,1、发布版本,需要等待审核,App Store最快也要1-2天吧,2、热补丁修复,App Store好像政策上不太允许。而h5似乎就没有这方面的限制了,随改随修,立马上线。
透过本质来看,界面是由数据渲染的,而数据是由界面事件驱动
的这一本质在两端没有改变,当然,这句话是我自己总结的,不知道对不对,但我可以肯定是,以我目前的理解,这句话是对的。
从耗时操作需要异步封装说起:
雪碧图
,css,js也出现了压缩,合并等工具,无一不是为了减少网络请求,减少页面加载时间。原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。