微信小程序——启动,渲染与Page

四种文件格式:

.js js操作

至少要写Page({}),用于注册一个页面

.json 一些基础设定

至少要一个{}
均需使用双引号, 且不能有注释,不能有多余的逗号
project.config.json 用于IDE的个性化配置

.wxml 代替html

推荐采用弹性盒模型
bind(冒泡阶段)和catch(捕获阶段)都能绑定事件

.wxss 代替css

新单位:rpx 规定屏幕为750rpx

  • 当前支持的选择器:
    .class #id element
    element, element
    ::after ::before

小程序的启动

  • 客户端下载小程序到本地
  • app.js中的onLaunch事件回调
  • 加载app.json中pages的第一条作为初始页面,根据其.json文件生成界面
  • 依次装载WXML和WXSS,最后加载.js文件并渲染data,完成后触发onLoad的回调

App()参数设置

  • onLaunch
  • onShow 当小程序启动,或从后台进入前台时显示
  • onHide
  • onError 发生脚本错误或 api 调用失败时,会触发并带上错误信息
  • onPageNotFound 当要打开的页面并不存在时
  • 其他自定义函数/数据

在App函数内用this获取实例,在外部可通过getApp()获取

数据渲染

数据绑定 {{}}
  • 所有数据都必须通过{{}}绑定,花括号和引号之间如果有空格,会被解析为字符串
列表渲染 wx:for
  • 绑定一个数组,默认当前项的下标名为 index,变量名为 item
  • 通过wx:for-index和wx:for-item可改变下标和变量名
  • 当 wx:for 的值为字符串时,会将字符串解析成字符串数组

wx:key
数组动态变化时,如果希望项目保持自己的特征和状态,(如 <input/> 的内容),需要指定唯一标识符。存在key的项目只会重新排序,没有key的项目会被重新创建

  • wx:key 的值以两种形式提供
    1.字符串,代表在 for 循环的 array 中 item 的某个 property,该 property 的值需要是列表中唯一的字符串或数字,且不能动态改变。
    2.保留关键字 *this ,代表在 for 循环中的 item 本身,这种表示需要 item 本身是一个唯一的字符串或者数字
条件渲染 wx:if

可使用包装元素<block/>同时包含多个元素 ,block不会在页面中做任何渲染,只接受wx:for和wx:if这样的控制属性。

wx:if vs hidden

  • 当 wx:if 的条件值切换时,框架有一个局部渲染的过程,确保条件块在切换时销毁或重新渲染
  • hidden 组件始终会被渲染,只是简单的控制显示与隐藏
    因此频繁切换时使用hidden,否则使用wx:if

Page

Page的跳转
  1. 通过wx.navigateTo跳转,只能打开非 tabBar 页面。
    • 当前页面onHide,后页面onLoad和onShow
  1. 通过wx.redirectTo跳转,只能打开非 tabBar 页面。
    • 当前页面onUnload,后页面onLoad和onShow
  1. 通过wx.navigateBack返回页面栈内页面。
    • 当前页面onUnload,后页面onShow
    • 可以通过getCurrentPages()获取页面栈
  1. 通过wx.switchTab进入,只能打开 tabBar 页面。
    • 所有非 tabBar 页面onUnload
  1. 通过wx.reLaunch进入,可以打开任意页面。
    • 所有已有页面onUnload,后页面onLoad和onShow
Page的生命周期
  • onLoad
    可获取打开当前页面所调用的 query 参数
  • onReady
    对界面的设置如wx.setNavigationBarTitle应在onReady后设置
  • onShow
    每次进入该页面都会触发一次
  • onHide
    当navigateTo或底部tab切换时调用。
  • onUnload
事件处理函数
  • onPullDownRefresh 监听下拉

需要在json中配置enablePullDownRefresh为true

  • onReachBottom 监听上拉触底

可在json中配置onReachBottomDistance,表示触发时距页面底部距离,单位px,默认为50

  • onShareAppMessage 设置转发内容,页面内有该函数时才允许转发
  • onPageScroll 页面滚动触发事件的处理函数
  • onTabItemTap 当前是 tab 页时,点击 tab 时触发
自定义事件处理函数(冒号可省略)

bind:tap="go" ( 在冒泡阶段触发 )
catch:tap="go" ( 在冒泡阶段触发,并阻止继续冒泡 )
capture-bind:tap="go" ( 在捕获阶段触发 )
capture-catch:tap="go" ( 在捕获阶段触发,并阻止捕获和冒泡 )

无法直接传参,仅能获取一个时间对象,可通过设置date-*属性,并在event.target.dataset中获取

  • touchstart
  • touchmove
  • touchcancel 触摸被弹窗,来电提醒等打断
  • touchend
  • tap 手指触摸后马上离开
  • longpress 长按(350ms以上),会覆盖tap
  • transitionend 在 WXSS transition 或 wx.createAnimation 动画结束后触发
  • animationstart 在 WXSS animation 动画开始时触发
  • animationiteration 在 WXSS animation 一次迭代结束时触发
  • animationend 在 WXSS animation 动画完成时触发
Page.prototype.route

获取当前路由

Page.prototype.setData(data,callback?)

将数据从逻辑层发送到视图层(异步),同时改变对应的 this.data 的值(同步)
data单次设置的数据不能超过1024kB,且不能有值为undefined
callback会在视图层渲染完成之后触发

Page实例的生命周期
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 196,165评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,503评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,295评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,589评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,439评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,342评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,749评论 3 387
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,397评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,700评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,740评论 2 313
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,523评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,364评论 3 314
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,755评论 3 300
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,024评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,297评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,721评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,918评论 2 336

推荐阅读更多精彩内容