微信小程序开发——小程序生命周期 & 页面生命周期 & 页面相关事件处理函数 & 简易双向绑定 & 表单组件

一、小程序的生命周期函数

小程序的生命周期函数是在app.js里面调用的,App(Object)函数用来注册一个小程序。接受一个 Object 参数,指定其小程序的生命周期回调。
小程序的生命周期函数的调用顺序为onLaunch > onShow > onHide。

1、onLaunch 监听小程序初始化

小程序加载时,执行的函数。

  onLaunch() {
    // 通常在这里面发起请求,获取后台数据
    console.log('小程序加载');
  },

2、onShow 监听小程序显示

小程序显示时,执行的函数。

  onShow(){
    console.log('小程序显示');
  },

3、onHide 监听小程序隐藏

小程序隐藏(从前台切换到后台)时,执行的函数。

  onHide(){
    console.log('小程序隐藏');
  }

二、页面的生命周期函数

页面生命周期函数就是当你每进入/切换到一个新的页面的时候,就会调用的生命周期函数。页面的生命周期函数是在app.js里面调用的

1、onLoad 监听页面加载

onLoad函数监听页面加载,对页面状态数据进行初始化。一个页面只会调用一次。onLoad函数的参数可以接收打开当前页面所调用的 query参数。

当前页面跳转detail页面后,调用query参数id。

<navigator url="../detail/detail?id={{item.Id}}" class="item" wx:for="{{subjects}}" wx:key="index">
</navigator>

detail页面中onLoad函数可以获取传递的query参数id。

  onLoad: function (options) {
    //获取传递的参数id
    let {id} = options
  }

2、onReady 监听页面初次渲染完成

页面初次渲染的时候触发,一个页面只会调用一次,代表页面已经准备妥当,可以和视图层进行交互。

    onReady: function () {
         console.log('页面初次渲染完成');
    }

3、onShow 监听页面显示

每次打开页面都会触发一次。

    onShow: function () {
         console.log('页面显示');
    }

4、onHide 监听页面隐藏

页面隐藏/切入后台时触发。 如 navigateTo 或底部 tab 切换到其他页面,小程序切入后台等情况下触发。

    onHide: function () {
         console.log('页面隐藏');
    },

5、onUnload 监听页面卸载

页面卸载(真正关闭)时触发,如redirectTo或navigateBack到其他页面时触发。

    onUnload: function () {
         console.log('页面卸载');
    },

三、页面相关事件处理函数

1、onReachBottom 上拉触底

当上拉至底部时就会触发onReachBottom函数来进行相应动作。

    onReachBottom:function(){
          // 操作
    }

2、onPullDownRefresh 下拉刷新

注意:下拉刷新默认是关闭状态,所以需要先在.json文件中设置允许下拉刷新。
enablePullDownRefresh:设置是否开启当前页面下拉刷新。
backgroundColor:设置窗口的背景色。
backgroundTextStyle:下拉 loading 的样式,默认是light,仅支持 dark / light。

{
  "enablePullDownRefresh": true,
  "backgroundColor": "#d1c2d3",
  "backgroundTextStyle": "light"
}

下拉刷新动效有默认时间。如果想改变默认的下拉时间,可以使用定时器。
wx.stopPullDownRefresh() :设置刷新完成后停止下拉刷新动效。

    onPullDownRefresh:function(){
       setTimeout(() => {
           wx.stopPullDownRefresh()
       }, 1000);
    }

3、onShareAppMessage 用户点击右上角分享

    onShareAppMessage: function () {

    }

四、简易双向绑定

1、普通属性绑定

在 WXML 中,普通的属性的绑定是单向的。如果用户修改了输入框里的值,不会同时改变 this.data.value。

    <input class="txt" value="{{value}}" />

2、简易双向绑定

如果需要在用户输入的同时改变 this.data.value ,需要借助简易双向绑定机制。双向绑定指的是:一处被修改,另一处也一起修改。
通过model:value的方式,将表单里面的数据跟js里面的数据进行了双向绑定。

   <input class="txt" model:value="{{value}}" />

3、双向绑定的表达式限制

双向绑定的表达式限制:① 只能是一个单一字段的绑定;② 目前,尚不能 data 路径。
以下写法都是错误的:

   <input model:value="值为 {{value}}" />
   <input model:value="{{ a + b }}" />
   <input model:value="{{ a.b }}" />

五、表单组件

1、picker 选择器组件

range:指定一个数组(指定一份展示的数据)。
range-key:如果range数组是一个对象数组,需要添加range-key属性,指定选择器中显示的内容(从对象身上指定一个属性)。
bindchange:value 改变时触发 change 事件,event.detail = {value}。

<picker class="txt" bindchange="bindPickerChange" range-key="Name" range="{{sections}}">
     <view>
        <!-- 根据选择器选中的索引,显示对应的名称 -->
        {{sections[sectionsActiveIndex].Name}}
     </view>
  </picker>

后台通过e.detail.value获取当前列表value的索引。

bindPickerChange: function(e) {
    console.log(e.detail.value)  //获取下标
}

效果图:

2、input 输入框

placeholder:输入框为空时占位符。

<text class="title">标题:</text>
<input value="" placeholder="请输入标题" />

效果图:

3、textarea 多行文本框

maxlength:最大输入长度。设置为 -1 的时候不限制最大长度。

<textarea maxlength="-1" value="" />

效果图:

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

推荐阅读更多精彩内容