版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、微信小程序框架解析hongweiqu(渠宏伟)微信小程序框架解析hongweiqu(渠宏伟)CONTENTS01 小程序介绍和演示02 小程序架构03 小程序视图层04 小程序逻辑层05 小程序开发经验CONTENTS01 小程序介绍和演示02 小程序架小程序介绍小程序介绍小程序的特点类WEB 不是HTML5媲美原生操作体验即用即走,随手可得拥有离线能力基于微信跨平台小程序的特点类WEB 不是HTML5媲美原生操作体验即用即走小程序演示企鹅电竞小程序体验小程序演示企鹅电竞小程序体验为什么那么快Native预先加载一个WebView当打开指定页面时,无需加载额外资源直接渲染返回显示历史View退
2、出小程序,View状态不销毁Page Frame common lib user common js为什么那么快Native预先加载一个WebViewPage 小程序架构小程序架构小程序架构View(视图层)PagePagePageWXMLWXSSApp Service (逻辑层)ManagerAPINative(系统层)JSBridge微信能力离线存储网络请求DataEventDataEvent小程序架构View(视图层)PagePagePageWXML小程序架构ViewApp ServiceCDNWeb ServerDataEventDataEventIn WeChatStorgeInit
3、 requestPackageAjax requestJSON DataNetwork小程序架构ViewApp ServiceCDNWeb SerView (页面视图)View (页面视图)View - WXML支持数据绑定支持逻辑算术、运算支持模板、引用支持添加事件(bindtap)WXML(WeiXin Markup Language)WXMLJSVirtualDOMDOM TreeCompilerDataVirtual DOMView - WXML支持数据绑定WXML(WeiXin MView - WXSS支持大部分CSS特性添加尺寸单位rpx,可根据屏幕宽度自适应使用import语句可
4、以导入外联样式表不支持多层选择器-避免被组件内结构破坏WXSS(WeiXin Style Sheets)WXSSJSCSSCompilerWidth,DPRView - WXSS支持大部分CSS特性WXSS(WeiXView WXSS Selectors选择器样例样例描述.ro选择所有拥有 class=intro 的组件#id#firstname选择拥有 id=firstname 的组件elementview选择所有 view 组件element, elementview, checkbox选择所有文档的 view 组件和所有的 checkbox 组件:afterview:a
5、fter在 view 组件后边插入内容:beforeview:before在 view 组件前边插入内容View WXSS Selectors选择器样例样例描述View - Component大类细分WXMLHTML视图容器普通视图容器viewdiv、ul、li、article、section滚动视图scroll-view滑块视图swiper基础内容文本textspan、em、p图标iconspan、em、i进度条progressdiv链接、导航链接、导航navigatora表单按钮buttonbutton、input单选radioinput多选checkboxinput表单formform输
6、入框inputinput改进表单可用性labellabel滚动选择器pickerselect开关选择器switchinput、div操作反馈底部菜单action-sheetdiv、ul弹窗modaldivtoasttoastdiv加载loadingimg、span、div媒体图片imageimg音频audioaudio视频videovideo地图地图mapmap画布画布canvascanvasView - Component大类细分WXMLHTML视图View - Component小程序的组件基于Web Component标准使用Polymer框架实现Web ComponentView -
7、Component小程序的组件基于Web CoView - Native ComponentNative组件层在WebView层之上View - Native ComponentNative组App Service(逻辑层)App Service(逻辑层)App Service逻辑层将数据进行处理后发送给视图层,同时接受视图层的事件反馈1、App( ) 小程序的入口;Page( ) 页面的入口3、提供丰富的 API,如微信用户数据,扫一扫,支付等微信特有能力。4、每个页面有独立的作用域,并提供模块化能力。5、数据绑定、事件分发、生命周期管理、路由管理运行环境IOS - JSCoreAndroi
8、d - X5 JS解析器DevTool - nwjs Chrome 内核App Service逻辑层将数据进行处理后发送给视图层,同App Service - BindingApp Service - BindingApp Service - Life CylceNativeLaunchonLaunchApp ServiceViewinitPageinitRenderonLoadonShowonReadyHandlerUser EventEventNotifySend init DataRe-RenderSend DataNew ViewNew PageonHideonShowRouteRou
9、teApp Service - Life CylceNativeApp Service - APIAPI通过JSBridge和Native 进行通信分类名称API网络发起请求request上传下载uploadFile / downloadFileWebSocketconnectSocket / onSocketOpen / onSocketError / sendSocketMessage / onSocketMessage / closeSocket / onSocketClose媒体图片chooseImage / previewImage / getImageInfo视频chooseVid
10、eo音频playVoice / pauseVoice / stopVoice录音startRecord / stopRecord文件saveFile / getSavedFileList / getSavedFileInfo / removeSavedFile数据数据缓存setStorage / getStorage / removeStorage / clearStorage位置获取位置getLocation查看位置openLocation设备网络状态getNetworkType系统信息getSystemInfo重力感应onAccelerometerChange罗盘onCompassChan
11、ge拨打电话makePhoneCall界面CanvasdrawCanvas / drawCanvas / canvasToTempFilePath动画createAnimation导航、设置导航条navigateTo / redirectTo / navigateBack交互反馈showToast / showModal / showActionSheet开放接口登录login用户信息getUserInfo微信支付requestPayment模板消息App Service - APIAPI通过JSBridgeApp Service - RouternavigateTo(OBJECT)保留当前页
12、面,跳转到应用内的某个页面,使用navigateBack可以返回到原页面。页面路径只能是五层redirectTo(OBJECT)关闭当前页面,跳转到应用内的某个页面。navigateBack(OBJECT)关闭当前页面,返回上一页面或多级页面。可通过 getCurrentPages() 获取当前的页面栈,决定需要返回几层。App Service - RouternavigateTo小程序开发经验小程序开发经验小程序可以借鉴的优点1、提前新建WebView,准备新页面渲染。2、View层和逻辑层分离,通过数据驱动,不直接操作DOM。3、使用Virtual DOM,进行局部更新。4、全部使用htt
13、ps,确保传输中安全。5、前端组件化开发。6、加入rpx单位,隔离设备尺寸,方便开发。小程序可以借鉴的优点1、提前新建WebView,准备新页面渲小程序存在的问题1、小程序仍然使用WebView渲染,并非原生渲染2、需要独立开发,不能在非微信环境运行。3、开发者不可以扩展新组件。4、服务端接口返回的头无法执行,比如:Set-Cookie。5、依赖浏览器环境的js库不能使用,因为是JSCore执行的,没有window、document对象。6、WXSS中无法使用本地(图片、字体等)。7、WXSS转化成js 而不是css,为了兼容rpx。8、WXSS不支持级联选择器。9、小程序无法打开页面,无法拉
14、起APP。小程序存在的问题1、小程序仍然使用WebView渲染,并非原脱离微信的“小程序”:PWA 渐进式应用PWA - Progressive Web App脱离微信的“小程序”:PWA 渐进式应用PWA - ProgPWA 特点渐进增强- 支持的新特性的浏览器获得更好的体验,不支持的保持原来的体验。离线访问- 通过 Service Workers 可以在离线或者网速差的环境下工作。类原生应用- 使用app shell model做到原生应用般的体验。可安装- 允许用户保留对他们有用的应用在主屏幕上,不需要通过应用商店。容易分享- 通过 URL 可以轻松分享应用。持续更新- 受益于 serv
15、ice worker 的更新进程,应用能够始终保持更新。安全- 通过 HTTPS 来提供服务来防止网络窥探,保证内容不被篡改。可搜索- 得益于 W3C manifests 元数据和 service worker 的登记,让搜索引擎能够找到 web 应用。再次访问- 通过消息推送等特性让用户再次访问变得容易。PWA 特点渐进增强- 支持的新特性的浏览器获得更好的体验PWA - Web App Manifest使Web更像NativeWeb App Manifest以JSON的格式定义Web 应用的相关配置(应用名称、图标或图像连接、启动URL、自定义特性、启动默认配置、全屏设置等)。PWA - Web App Manifest使Web更像NaPWA - Service Work
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 采煤课程设计实习报告
- 车间调度算法设计课程设计
- 健康手环蓝牙BLE方案开发课程设计
- PCA降维生物信息课程设计
- 基于NLP的情感分析工具实现方法课程设计
- 深度强化学习游戏AI智能体设计课程设计
- ug应用课程设计小结
- 基于PID的直流电机效率控制课程设计
- 模拟 IC 设计工程师考试试卷及答案
- 彩笔画橘子课程设计
- UL2034标准中文版-2017一氧化碳报警器UL中文版标准
- AIGC提示词美学定义
- 高中新生入学开学第一课班会课件
- JT∕T 1496-2024 公路隧道施工门禁系统技术要求
- 纳米纤维课件
- 《高二开学第一课》主题班会课件
- 2020风电场设备事故现场处置方案
- 自考《兽医法规14239》考试复习题库(必备版)
- 《中华民族大团结》(初中)第1课-爱我中华教学课件
- 2021废(污)水处理用复合碳源
- 化学(基础模块)中职PPT完整全套教学课件
评论
0/150
提交评论