国产精品99久久久久久宅男-国产av无码专区亚洲av手机麻豆-天天躁夜夜躁狠狠是什么心态-日韩av高清在线观看

網(wǎng)商課堂_智企云網(wǎng)絡(luò)商學(xué)院

小程序開發(fā)

長沙小程序開發(fā)智企云講講小程序的頁面和事件!

來源:長沙小程序開發(fā) 發(fā)布日期:2020-03-09 13:52:42 總瀏覽:1519

  之前長沙小程序開發(fā)公司智企云給大家介紹了一些小程序開發(fā)的學(xué)習(xí)分享的相關(guān)介紹,今天在此為大家繼續(xù)為大家詳細(xì)講講小程序的頁面和事件,可能概括地不太好,不過大致內(nèi)容就是圍繞著這兩個方面展開的,主要是按照我們的學(xué)習(xí)路徑來,希望對大家能有所幫助。

長沙小程序開發(fā)智企云講講小程序的頁面和事件!

  頁面配置

  小程序定義了一個單例變量App,可以通過getApp()來獲取。這個App變量就是小程序?qū)嵗?,定義在app.js中。在App實(shí)例的構(gòu)造器中,可以添加小程序生命周期相關(guān)的事件函數(shù)和全局變量。

  支持的生命周期相關(guān)事件有:

  onLaunch: function(options) {}: 小程序初始化完成時觸發(fā),且整個生命周期只會觸發(fā)一次

  onShow: function(options) {}: 小程序啟動或者是從后臺轉(zhuǎn)為前臺時觸發(fā)

  onHide: function() {}: 小程序從從前臺轉(zhuǎn)為后臺時觸發(fā)

  onError: function(msg) {}: 腳本錯誤或者調(diào)用API出錯會觸發(fā),msg帶著報錯信息

  這里說明一下onLaunch和onShow函數(shù)中的options常用的字段:

  path:字符串,表示打開小程序的頁面路徑

  query:Object類型,表示打開小程序的頁面參數(shù),例如打開小程序是指定了url: pages/index/index?id=1&name=John。則query為{id:"1",name:"John"}

  scene:數(shù)值,表示打開小程序的場景值,詳細(xì)場景值請參考小程序官方文檔

  referrerInfo:Object類型,當(dāng)場景為由從另一個小程序或公眾號或App打開時,返回此字段

  referrerInfo.appId:字符串,表示來源小程序或公眾號或App的 appId

  referrerInfo.extraData:Object類型,表示來源小程序傳過來的數(shù)據(jù),scene=1037或1038時支持

  有時候需要定義一些在所有頁面都可以共享的變量,直接在App構(gòu)造器里面增加即可。如下圖,加了一個testGlobal字段:

長沙小程序開發(fā)智企云講講小程序的頁面和事件!

  可以在wxml頁面中直接{{testGlobal}}使用,也可以在js文件中通過getApp().testGlobal訪問。更新數(shù)據(jù)的話可以用getApp().setData({testGlobal: "new value"}, function(){}) 來進(jìn)行,function表示設(shè)置成功的回調(diào)函數(shù)。注意:直接用getApp().testGlobal = "new value"不會更新數(shù)據(jù),并且還可以會產(chǎn)生不可預(yù)期的BUG。

  說完了 全局的頁面設(shè)置,下面來說一下每個單獨(dú)的頁面。頁面文件都放在pages文件夾下面,用到的頁面需要在app.json中聲明,如下圖所示

長沙小程序開發(fā)智企云講講小程序的頁面和事件!

  如果是用開發(fā)工具自動生成的頁面,會自動在這里加上聲明,否則需要自己手動加上,不然不會識別到新添加的頁面。小程序默認(rèn)聲明的第一個頁面為主頁,即默認(rèn)打開頁面。

  每一個單獨(dú)的頁面分為三個部分:界面、配置和業(yè)務(wù)邏輯。界面的話由xxx.wxml和xxx.wxss描述(xxx表示頁面命名);配置寫在xxx.json中;業(yè)務(wù)邏輯在xxx.js中實(shí)現(xiàn)。這四個文件必須放在同一個文件夾中,通常為了項(xiàng)目結(jié)構(gòu)美觀,建議每個頁面單獨(dú)放在page下面的一個文件夾中。xxx.js和xxx.wxml是必須的,其他兩個文件可選。

  與App.js類似,頁面的對象定義在xxx.js中,其中有一個Page的構(gòu)造器,在里面可以定義頁面的變量和一些生命周期相關(guān)的操作事件。一個最簡單的構(gòu)造器如下所示:

  Page({ data: { diyData: "do it yourself" }, onLoad: function(options) { }, onReady: function() { }, onShow: function() { }, onHide: function() { }, onUnload: function() { }, onPullDownRefresh: function() { }, onReachBottom: function() { }, onShareAppMessage: function () { }, onPageScroll: function() { }})

  下面詳細(xì)介紹下每一個字段及其用法

  data表示頁面數(shù)據(jù),跟App中的全局變量相比,這個就是頁面定義的局部變量,只在當(dāng)前頁面中生效??梢灾苯佑胻his.diyData進(jìn)行訪問,更新的話可以用this.setData({diyData: "new data"})來進(jìn)行更新。切記:千萬不要直接this.diyData="new data"這樣更新。

  onLoad: 頁面加載時觸發(fā),早于onReady和onShow。options里面帶的字段就是轉(zhuǎn)到當(dāng)前頁面的query對應(yīng)的字段,例如A通過wx.navigateTo函數(shù)轉(zhuǎn)到當(dāng)前頁面,url指定:pages/inexe/index?age=21&name=Cuihua。則options= {age:"21",name:"Cuihua"}

  onReady: 頁面初次渲染完成

  onShow: 頁面顯示,觸發(fā)事件早于onReady

  onHide: 頁面隱藏:

  onUnload: 頁面卸載:

  onPullDownRefresh: 監(jiān)聽用戶下拉動作。需要在app.json的window選項(xiàng)中或頁面配置page.json中設(shè)置enablePullDownRefresh為true

  onReachBottomFunction: 頁面上拉觸底事件的處理函數(shù)

  onShareAppMessage: 用戶點(diǎn)擊右上角轉(zhuǎn)發(fā)。只有定義了此事件處理函數(shù),右上角菜單才會顯示“轉(zhuǎn)發(fā)”按鈕,在用戶點(diǎn)擊轉(zhuǎn)發(fā)按鈕的時候會調(diào)用,此事件需要return一個Object,包含title和path兩個字段,用于自定義轉(zhuǎn)發(fā)內(nèi)容。title表示標(biāo)題,path的話表示要打開的頁面的路徑,如pages/index/index

  onPageScroll: 頁面滾動觸發(fā)事件的處理函數(shù)

  除了上面這些,還可以在page的構(gòu)造器里面添加任意的字段,通過this.xxx訪問(這么看來感覺page構(gòu)造器里面的data有點(diǎn)多余?大概是為了美觀吧,放在一起 哈哈哈)。

  頁面跳轉(zhuǎn)

  這里默認(rèn)大家都知道棧這個數(shù)據(jù)結(jié)構(gòu)哈(畢竟作為一個產(chǎn)品經(jīng)理我都是知道的)。

  頁面之間跳轉(zhuǎn)有三個方式進(jìn)行:wx.navigateTo({ url: 'page1' })、wx.navigateBack() 和wx.redirectTo({ url: 'page2' }) 。

  navigateTo指定一個跳轉(zhuǎn)的頁面,如果用棧頂頁面表示當(dāng)前頁面的話,相當(dāng)于把要跳轉(zhuǎn)的頁面入棧,即[currentPage, targetPage],棧的大小最大為10。

  navigateBack返回上一個頁面,相當(dāng)于棧頂頁面出棧。

  redirectTo是直接替換當(dāng)前頁面的操作,例如,當(dāng)前棧的狀態(tài)是[A, B, C, D],然后進(jìn)行wxredirectTo({url:'E'})操作,則操作完之后的狀態(tài)是[A, B, C, E]。注意,因?yàn)闂5拇笮∽疃酁?0,所以在進(jìn)行了10次navigateTo操作后,再要跳轉(zhuǎn)頁面只能用wx.redirectTo了。

  如果在App里面定義了toolbar(小程序底部Tab頁面,例如微信底部的"微信","通訊錄","發(fā)現(xiàn)"和"我"四個Tab頁面)的話,還可以用wx.switchTab({ url: 'pageOther' })進(jìn)行頁面切換,表示切換到pageOther所在的Tab,并且打開pageOther頁面。注意,此時之前的頁面棧全部清空,即當(dāng)前的頁面棧狀態(tài)為[pageOther]。

  事件

  事件表示對用戶在小程序UI界面上某些操作的響應(yīng),比如用戶點(diǎn)擊某個按鈕或者長按之類的操作,我們可以定義對應(yīng)的handler函數(shù),若是有這些用戶操作發(fā)現(xiàn),就會調(diào)用我們的handler。

  例如我們定義一個點(diǎn)擊事件,點(diǎn)擊之后用命令行打印出"hello, world"

  Click me! // page.js Page({ tapName: function(event) { console.log("hello, world") }})

  一般事件定義在組件的尖括號中,定義一個bindXxx屬性(也可以用bind:xxx),表示綁定Xxx事件,值表示handler函數(shù),需要在對應(yīng)的js文件中定義。

  常見的事件有:

  touchstart:手指觸摸動作開始

  touchmove:手指觸摸后移動

  touchcancel:手指觸摸動作被打斷,如來電提醒,彈窗

  touchend:手指觸摸動作結(jié)束

  tap:手指觸摸后馬上離開

  longpress:手指觸摸后,超過350ms再離開,如果指定了事件回調(diào)函數(shù)并觸發(fā)了這個事件,tap事件將不被觸發(fā)

  longtap手指觸摸后,超過350ms再離開(推薦使用longpress事件代替)

  transitionend:會在 WXSS transition 或 wx.createAnimation 動畫結(jié)束后觸發(fā)

  animationstart:會在一個 WXSS animation 動畫開始時觸發(fā)

  animationiteration:會在一個 WXSS animation 一次迭代結(jié)束時觸發(fā)

  animationend:會在一個 WXSS animation 動畫完成時觸發(fā)

  事件handler函數(shù)傳入的event包括如下字段:

  type:字符串,表示事件類型

  timeStamp: 數(shù)值,表示頁面打開到觸發(fā)事件所經(jīng)過的毫秒數(shù)

  target:Object類型,表示觸發(fā)事件的組件的一些屬性值集合

  currentTarget:Object類型,表示當(dāng)前組件的一些屬性值集合

  detail:Object類型額外的信息

  touches:數(shù)組類型,表示觸摸事件,當(dāng)前停留在屏幕中的觸摸點(diǎn)信息的數(shù)組

  changedTouches:數(shù)組類型,表示觸摸事件,當(dāng)前變化的觸摸點(diǎn)信息的數(shù)

  這里的字段建議自己用console.log(event)打印出來自己看看啥意思比較容易理解。

      以上就是長沙小程序開發(fā)智企云給我們帶來的小程序的頁面和事件方面的學(xué)習(xí)報道,希望大家對此能有所了解,繼續(xù)深挖,后續(xù)我們也會帶來更多關(guān)于小程序開發(fā)的相關(guān)報道,敬請期待關(guān)注智企云。

版權(quán)與免責(zé)聲明:智企云文章如需轉(zhuǎn)載請注明原創(chuàng)來源。本站部分文章和圖片來源網(wǎng)絡(luò)編輯,如存在版權(quán)問題請及時溝通處理。文章觀點(diǎn)僅代表作者本人,不代表智企云立場。

免費(fèi)索取解決方案

馬上享受線上優(yōu)惠

免費(fèi)索取解決方案

每天前10名咨詢有好禮

智企云 版權(quán)所有 ? 2016-2018 湘ICP備11017552號

地址:長沙市高新開發(fā)區(qū)尖山路39號中電軟件園總部大樓6樓

Copyright ? 2015-2024 智企云 All Rights Reserved. 湘ICP備11017552號 技術(shù)支持:中億智企云

湘公網(wǎng)安備43019002000674號 客服熱線:15874991942 公司地址:長沙市高新開發(fā)區(qū)尖山路39號中電軟件園總部大樓6樓

電話咨詢
獲取報價
微信資詢
微信公眾號
返回頂部

智企云服務(wù)助手

馬上領(lǐng)取2000元新人紅包
打開小程序

微信號15874991942已復(fù)制,去微信粘貼搜索添加微信一對一咨詢

保存或掃描上方二維碼添加微信一對一咨詢

15874991942

您的信息已成功提交,我們會盡快聯(lián)系您!