欢迎来到天天文库
浏览记录
ID:21235102
大小:820.67 KB
页数:6页
时间:2018-10-20
《微信小程序框架解析》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、微信小程序框架解析Softeem·杨标一、小程序介绍和演示微信小程序是国内腾讯公司推出的一款类APP应用平台,用户和开发者可以在依据腾讯发布的API文档与微信Web开发者工具进行开发,其程序主要有以下几个特点:1、类Web的应用程序,但不是HTML52、即用即走,随手可得3、拥有离线能力4、基于微信跨平台5、媲美原生操作体验如图所示:左图是一个微信小程序的界面。微信小程序采用Native预告加载一个WebView。当打开指定页面时,无需加载额外资源直接渲染,这种操作方式极大的改善了用户的操作体验,达到了原生APP的操作效果。一、小程序框架上边两个图片可以说明微信小程序的框架结构,微信小程序
2、里面View视图层与AppServer逻辑层分开的,与现在主流的前后端分离开发大同小异,数据通信采用微信API进行异步请求视图层的界面布局采用wxml,视图层的样式控制采用wxss进行,在这里要说明一下,微信小程序里面的wxml与前端里面的HTML似,都是用标签进行布局。而wxss与前端里面的CSS一样,支持CSS3,动画,变幻等新特性,而界面的逻辑控制就是JS(微信后期出了一个wxs,是一个类JS的语言,语法与JS差不多)二、小程序视图层刚刚在上个章节提到了微信小程序的框架结构,在这个章节,我们主要来看一下视图层的相关介绍。在视图层中,微信的WXML作为标签的布局,它支持数据绑定,输运运
3、算,同时还支持模板引用(template),这些与HTML里面的差不多,唯一有一点区别的就是在事件绑定这一块。在微信的视图层事件绑定时面,微信不事件采用的是bind的策略,与HTML里面的on是不一样的,但同时也支持事件冒泡。微信自己封装了一系列的视图层事件,如bindtap点击,bindlongtap长按,这些事件针对移动端做了进一步的优化,例其能够符合移动端APP的操作习惯而作为界面样式控制的WXSS,它支持大部分的CSS,同时,它新增了一个尺寸单位rpx,这个单位可以根据屏幕的宽度进行自适用,这点是一个很大的进步,它可以使微信小程序在不同的手机屏幕下面进行自适用(这一点在以前的HTM
4、L+CSS上面,需要通过vw、rem、em或者媒体查询来进行),同时,可以使用@import来导入外部的样式文件,但在这里有一点要说明的就是,WXSS里在,不支持多层选择器,这样就避免了组件的内部样式被污染。在CSS里面,我们常用的选择器有9种,而在微信小程序里面,进行精简了很多,具体我做了个列表,如下:在上图当中,我们可以看出,微信小程序的WXSS支持类选择器,ID选择器,标签选择器,分组选择器以及伪元素选择器,但是去除了CSS时面的兄弟~与相邻兄弟~选择器,去除了常用的属性选择器。在微信小程序的布局里面,主要用到的标签为view标签,这个标签相当于HTML里面的DIV标签,是一个块级
5、标签,同时,文字标签改为了text这个标签,相当于HTML里面的label或者span等行内标签,下图是微个小程序的标签与普通的HTML标签对比一、小程序逻辑层前面讲完了小程序的界面神图层,现在来讲讲逻辑层。微信小程序的逻辑层将数据处理以后发送给神力层,同时接受视图层的事件反馈1、上图就是一个微信小程序的逻辑代码,通过这些代码,我们来分析一下:1、App()是小程序的入口,Page()是页面的入口2、微信提供了丰富的API,如微信定位,微信扫一扫,微信支付等功能3、每个页面有独立的作用域,并提供模块化能力在逻辑的代码里面,可以进行数据绑定,事件分发,生命周期管理,跌幅管理等功能上图是微信小
6、程序的生命周期图,微信小程序的页面中,常用的生命周期回调函数有onLoad,onShow,onReady,onHide,具体的执行顺序可看上图。上图为微信小程序部分API列表。微信小程序里面,不同的页面之间进行跳转,微信制定了一些相关的规范,主要有以下几种:1、navigatoTo(OBJECT)保留当前页面,跳转到应用内的某个页面,使用navigateBack可以返回到原页面,页面路径只能有五层2、redirectTo(OBJECT)关闭当前页面,跳转到页在内的某个页面3、navigateBack(OBJECT)关闭当前页面,返回上一级页面或多级页面,可通过getCurrentPages
7、()来获取当前的页面栈,决定返回那一层4、switchTab(OBJECT)使用该方法,可以切换到tabBar里面的某一个页面,在这里要注意,该方法切换的页面必须是在app.json文件里面的tabBar里面注册过的页面一、小程序开发经验在开发小程序的过程当中,有一些开发经验,现在给各位介绍一下。小程序可以借鉴的优点:1、提前新建WebView,准备新页面渲染2、View层与逻辑分享,通过数据驱动,而不直接操作页面元素3
此文档下载收益归作者所有