作为前端工程师,从前端的视角,为大家分析下微信小程序和HTML5与之间的主要区别
第一条是运行环境的不同。
传统的HTML5的运行环境是浏览器,包括webview,而微信小程序的运行环境并非完整的浏览器,大家注意,我这里写的是“非完整的浏览器”,有以下几个原因
小程序的开发过程中会用到HTML5相关的技术(并非全部)
小程序最后的发布上线需要微信审核,微信在不更新自身软件的情况下可以将小程序更新到自身软件内,这就联想到了React Native框架,并且已经有开发者在微信小程序的开发工具源码中发现使用了React和NodeWebkit库
官方文档中着重强调了脚本内是无法使用浏览器中常用的window对象和document对象(基于这一点,像zepto/jquery这种操作dom的库就被完全抛弃了)
所以我个人认为,小程序的运行环境很有可能是微信开发团队基于浏览器内核完全重构的一个内置解析器,针对小程序专门做了优化,配合自己定义的开发语言标准,提升了小程序的性能。
不过由于微信给开发者提供了开发工具,而开发工具中也内置了编程、调试、开发环境、发布于一身,我们也不用再探讨它的最终运行环境了,只要按照官方文档进行开发就可以了。并且从微信团队给开发者提供开发工具这一举动,让我联想到了苹果给开发者提供的X-CODE开发工具,可以想象微信的“野心”可见一斑
第二条是开发成本的不同。
这里我提出了一个问题,当我们面对一个HTML5 web开发需求时,我们需要考虑什么呢?抛去开发工具(vscode、sublimtext、Atom等)不谈,大到前端框架(Angular、react、vue、backbone等)、模块管理工具(Webpack 、Browserify 等)、任务管理工具(Grunt、Gulp等),小到UI库选择、接口调用工具(ajax、Fetch Api等)、浏览器兼容性等都要我们一一考略,再不济用jqery插件写H5,也要在开发过程中去寻找合适的jquery插件来配合项目。尽管这些工具可定制化非常高,并且提高了开发者的开发效率,但我相信项目开发的配置工作已经消耗了不少精力,尽管大部分开发者都有自己的配置模板,但长久以来对于项目中使用的各种外部库的版本迭代、版本升级所产生的成本应该也不低。
而当我们面对一个微信小程序的开发需求时,我们需要考虑什么呢?微信团队提供了开发者工具,并且规范了开发标准,前端常见的HTML、CSS变成了微信自定义的WXML、WXSS,WXML中尽管全部是自定义标签,但官方文档中都有明确的使用介绍,相信上手应该是非常容易的;WXSS、JSON和JS文件中的写法稍有限制,但整体相差不多。在统一了这些标准之后,作为一个开发者,你会发现,自己只要专注写程序就可以了:
当需要调用后端接口时,调用发起请求API
当需要上传下载时,调用上传下载API
当需要数据缓存时,调用本地存储API
引入地图、使用罗盘、调用支付、调用扫码等等功能都可以直接使用
UI库方面,框架自然带有自家weui库加成
并且在使用这些API时,你不用再去顾虑浏览器兼容性,不用担心生产环境中出现不可预料的奇妙BUG,可见微信小程序的开发成本确实相比以往的web开发低很多。
第三条是获取系统级权限的不同。
微信小程序相对于HTML5 web应用能获得更多的系统权限,比如网络通信状态、数据缓存能力等,这些系统级权限都可以和微信小程序无缝衔接,也就是官方宣称的拥有Native App的流畅性能,而这一点恰巧是HTML5 web应用经常被诟病的地方,这也是HTML5的大多应用场景被定位在业务逻辑简单、功能单一的原因。
第四条便是应用在生产环境的运行流畅度。
这条无论对于用户还是开发者来说,都是最直观的感受。长久以来,当HTML5应用面对复杂的业务逻辑或者丰富的页面交互时,它的体验总是不尽人意,需要不断的对项目优化来提升用户体验。但是由于微信小程序运行环境独立,尽管同样用html+css+js去开发,但配合微信的解析器最终渲染出来的是原生组件的效果,自然体验上将会更进一步。
引用
「H5程序俱乐部」是一个专注微信小程序学习交流,相关外包/招聘需求信息发布的微信公众号
- 大小: 39.6 KB
分享到:
相关推荐
微信小程序支持内嵌H5页面,通过`<web-view>`组件实现。这样可以利用H5的灵活性来展示动态内容或复杂业务逻辑。在加载H5页面时,需要设置正确的URL,并处理好页面间的交互,例如传递数据和事件监听。 5. **不同...
"使用uniapp + uView 打造微信小程序&H5端 在线教育网校系统" 这个标题揭示了项目的核心技术栈和应用领域。uniapp是一个跨平台的开发框架,它允许开发者用一套代码同时构建iOS、Android、Web、微信小程序等多个平台...
源代码是程序设计的基础,通过分析和研究这些源代码,我们可以深入理解微信小程序在教育培训领域的具体实现方式。下面将详细介绍可能涵盖的一些关键知识点: 1. **小程序框架**:微信小程序基于腾讯自家的小程序...
在"种树源码微信小程序"中,我们可以分析以下几个关键知识点: 1. **微信小程序开发**:微信小程序是一种轻量级的应用开发框架,开发者可以使用JavaScript、WXML(WeChat Markup Language)和WXSS(WeChat Style ...
【标题】:户外旅游微信小程序源码...通过深入研究这套户外旅游微信小程序源码,开发者不仅可以学习到微信小程序开发的基本技巧,还能了解户外旅游应用的设计思路,对于提升自身在小程序开发领域的专业能力有很大帮助。
总的来说,这款记账小程序的开发涉及到了微信小程序的基本架构、H5页面的前端开发、JavaScript编程以及数据管理等多个方面,对于想要深入理解和实践微信小程序开发的开发者来说,这是一个非常有价值的参考资料。...
通过具体案例分析,可以更深入地理解如何在微信小程序设计中实施上述设计原则。例如,在设计一款购物小程序时,首页应该突出展示商品分类和推荐商品,同时提供清晰的导航菜单和搜索框,使用户能够快速找到所需的商品...
总结,这个压缩包提供的资源可以帮助开发者了解如何在微信小程序中构建一个条形码扫描功能的前端页面,通过学习和理解源码,不仅可以掌握微信小程序的基本开发流程,还能深入理解条形码扫描技术的实现细节,对于提升...
【标题解析】 "微信小程序项目之校园兼职系统(源码+说明)" 是一个针对微信小程序平台开发的项目,旨在...通过实践这个项目,开发者不仅可以深入理解微信小程序的开发流程,还能积累实际项目经验,提升解决问题的能力。
本资料包“仿网易云音乐_微信小程序模板js代码前台前端H5页面源码.rar”提供了一个独特的学习资源,它不仅包含了微信小程序的模板代码,还有对应的H5页面源码,让我们可以深入理解并实践如何构建一个类似网易云音乐...
《知乎微信小程序模板JS代码与前端H5页面源码详解》 在当今互联网技术日新月异的时代,微信小程序作为轻量级应用的代表,以其无需安装、即扫即用的特点,深受用户喜爱。而H5页面作为移动端的网页应用,同样在移动...
这款小程序是学习和理解微信小程序开发的绝佳实例,可以帮助开发者深入掌握微信小程序的开发技巧。 【描述】提到的“非常好的源码”意味着你可以直接查看和分析游戏的代码结构,这对于学习如何构建类似的小程序非常...
Taro 是一个开源的多端开发框架,允许开发者使用 React 的开发方式来编写代码,同时可以编译到微信小程序、H5、支付宝小程序等多个平台。 【描述解析】 描述中的 "基于 Taro 框架开发的一款在线云打印微信小程序...
标题"XiaoxiazhihuWx-master_微信小程序模板js代码前台前端H5页面源码.rar"表明这是一个关于微信小程序的项目源码,名为"XiaoxiazhihuWx-master",其中包含了JavaScript(js)代码以及用于前台展示的H5(HTML5)页面...
毕业设计,微信小程序+H5+SSM后端+MySql开发的智慧消防小程序,内含完整源代码,数据库脚本,论文视频,视频教程 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了...
"wechat-weapp-demo" 是一个关于微信小程序的示例项目,它包含了一套完整的js代码,用于展示微信小程序的前台前端开发,以及H5页面的源码。这个压缩包的文件列表中只有一个主文件夹 "wechat-weapp-demo",我们可以从...
在本文中,我们将深入探讨如何使用uniapp框架和微信小程序来实现小票打印机的打印功能。这个教程将提供一个详尽的步骤指南,确保你能够理解并应用到实际项目中。我们将涵盖以下知识点: 1. **uniapp简介**:uniapp...
微信小程序是一种轻量级的应用开发平台,主要针对移动端,由腾讯公司推出,旨在提供便捷的、无需下载安装即可使用的线上服务。"微信小程序-婚礼邀请函源码"是一个专为婚礼设计的小程序应用实例,适合那些希望学习或...
基于以上信息,我们可以深入讨论美容美发在线预约微信小程序源码涉及的技术和功能点: 1. **前端框架**:小程序通常基于微信提供的WXML(WeiXin Markup Language)和WXSS(WeiXin Style Sheets)来构建用户界面,...
### 基于微信小程序的高校新生...通过上述分析可以看出,《基于微信小程序的高校新生预报到系统设计》这篇文章深入浅出地探讨了利用微信小程序技术改善高校管理和服务的具体方法,为教育信息化建设提供了有价值的参考。