最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

微信小程序的線程架構(gòu)【推薦】

 更新時(shí)間:2019年05月14日 09:11:40   作者:IDreamo  
這篇文章主要介紹了微信小程序的線程架構(gòu),每個(gè)小程序包含一個(gè)描述整體程序的app實(shí)例和多個(gè)描述頁(yè)面的page,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下

小程序的線程架構(gòu)

每個(gè)小程序包含一個(gè)描述整體程序的app實(shí)例多個(gè)描述頁(yè)面的page。

其中app由3個(gè)文件構(gòu)成:

app.json 公共配置文件

app.wxss 公共樣式文件

app.js 主體邏輯文件

page頁(yè)面最多由4個(gè)文件構(gòu)成:

page.jason 頁(yè)面配置

page.wxml 頁(yè)面結(jié)構(gòu)

page.wxss 頁(yè)面樣式

page.js 頁(yè)面主體邏輯

app.js和page.js中包含小程序在生命周期的每個(gè)階段相應(yīng)的事件。

典型的app.js代碼結(jié)構(gòu)如下:

App({
 onLaunch:function(){
  //小程序啟動(dòng)時(shí)執(zhí)行的初始化工作
 },
 onShow:function(){
  //程序啟動(dòng)或從后臺(tái)進(jìn)入前臺(tái)時(shí),觸發(fā)執(zhí)行的操作
 },
 onHide:function(){
  //程序從前臺(tái)進(jìn)入后臺(tái)時(shí),觸發(fā)執(zhí)行的操作
 },
globalConf:{
 indexDate:'',
 matchData:''
},
dataCache:{},
globalData:''
})

典型的page.js代碼結(jié)構(gòu)如下:

Page({
 Data:{
}
 onLoad:function(){
  //頁(yè)面加載時(shí),執(zhí)行的初始化工作
 },
 onReady:function(){
  //頁(yè)面就緒后,觸發(fā)執(zhí)行的操作
 },
 onShow:function(){
  //頁(yè)面打開(kāi)時(shí),觸發(fā)執(zhí)行的操作
 },
 onHide:function(){
  //頁(yè)面隱藏時(shí),觸發(fā)執(zhí)行的操作
 },
 onUnload:function(){
  //頁(yè)面關(guān)閉時(shí),觸發(fā)執(zhí)行的操作
 },
 //Events handler
  viewTap:function(){
   this.setData({
    text:'set some data for updating view.'
   })
}
})

 一個(gè)完整的小程序執(zhí)行的過(guò)程或生命周期如下:

app.onLaunch-->app.onShow-->page1.onLoad-->page1.onShow-->page1.onReady
(打開(kāi)程序,第一個(gè)頁(yè)面page1加載完成)
-->page1.onHide-->page2.onLoad-->page2.onShow-->page2.onReady 
(從第1個(gè)頁(yè)面打開(kāi)第2個(gè)頁(yè)面)
-->page2.onUnload-->page1.onShow-->...-->app.onUnload 
(關(guān)閉page2,返回page1...退出小程序)

一個(gè)page的生命周期開(kāi)始于onLoad事件,在整個(gè)生命周期內(nèi)onLoad、onReady、onUnload這三個(gè)事件各執(zhí)行一次,onHide和onShow事件在每次頁(yè)面隱藏和顯示時(shí)都會(huì)觸發(fā)。

當(dāng)用戶(hù)手動(dòng)觸發(fā)小程序的退出箭頭時(shí),小程序僅觸發(fā)app.Hide,下次進(jìn)入小程序時(shí)會(huì)觸發(fā)app.onShow以及當(dāng)前頁(yè)的page.onShow。僅當(dāng)小程序在后臺(tái)運(yùn)行超過(guò)一定時(shí)間未被喚起、或者用戶(hù)手動(dòng)在小程序的控制欄里點(diǎn)擊退出程序、或者小程序內(nèi)存占用過(guò)大被系統(tǒng)關(guān)閉時(shí),小程序?qū)⒈讳N(xiāo)毀,會(huì)觸發(fā)app.onUnload事件。

每個(gè)小程序分為2個(gè)線程,view與appServer。

view 線程   appServer線程

.wxml + wxss

 

ios:safari

Android:X5瀏覽器

開(kāi)發(fā)工具:chrome

.js

 

ios:JavaScriptCore

Android:X5內(nèi)核

開(kāi)發(fā)工具:nwjs

view線程負(fù)責(zé)解析渲染頁(yè)面(wxml和wxss文件)。

appServer線程負(fù)責(zé)運(yùn)行js。appServer線程運(yùn)行在jsCore(安卓下運(yùn)行在X5中,開(kāi)發(fā)工具運(yùn)行在nwjs中)。由于js不跑在WebView里,就不能直接操縱DOM和BOM,這就是小程序沒(méi)有window全局變量的原因。

總結(jié)

以上所述是小編給大家介紹的微信小程序的線程架構(gòu),希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!

相關(guān)文章

  • Javascript玩轉(zhuǎn)繼承(三)

    Javascript玩轉(zhuǎn)繼承(三)

    在前兩篇文章中,介紹了構(gòu)造繼承和原型繼承。今天把剩下的兩種寫(xiě)完,這兩種的應(yīng)用相對(duì)于前兩種來(lái)說(shuō)應(yīng)用很少,因此我把他們稱(chēng)為是非主流繼承方式
    2014-05-05
  • js 中的switch表達(dá)式使用示例

    js 中的switch表達(dá)式使用示例

    switch 這種表達(dá)式在很多語(yǔ)言中都有,比如java, C等待, 使用switch比使用if else 來(lái)得方便,來(lái)得清晰,下面為大家詳細(xì)介紹下其具體的使用,感興趣的朋友可以參考下
    2013-09-09
  • 原生JS實(shí)現(xiàn)拖拽排序的示例代碼

    原生JS實(shí)現(xiàn)拖拽排序的示例代碼

    說(shuō)到拖拽,應(yīng)用場(chǎng)景不可謂不多。無(wú)論是打開(kāi)電腦還是手機(jī),第一眼望去的界面都是可拖拽的,靠拖拽實(shí)現(xiàn)APP或者應(yīng)用的重新布局,或者拖拽文件進(jìn)行操作文件。本文就將利用JS實(shí)現(xiàn)拖拽排序,需要的可以參考一下
    2022-12-12
  • JavaScript開(kāi)發(fā)中需要搞懂的字符編碼總結(jié)

    JavaScript開(kāi)發(fā)中需要搞懂的字符編碼總結(jié)

    字符集就是字符的集合,字符編碼則代表字符集的實(shí)際編碼規(guī)則,是用于計(jì)算機(jī)解析字符的。本文為大家整理了JavaScript開(kāi)發(fā)中需要搞懂的字符編碼,希望對(duì)大家有所幫助
    2023-02-02
  • JS中循環(huán)遍歷數(shù)組的幾種常用方式總結(jié)

    JS中循環(huán)遍歷數(shù)組的幾種常用方式總結(jié)

    文章主要總結(jié)了?JS?中循環(huán)遍歷數(shù)組的十二種常用方式,包括?for?循環(huán)(普通和優(yōu)化版)、forEach、map、filter、for…of、for…in、find、findIndex、some、every、reduce?等,并對(duì)它們的特點(diǎn)、語(yǔ)法、優(yōu)缺點(diǎn)、適用場(chǎng)景及返回值等進(jìn)行了詳細(xì)說(shuō)明,需要的朋友可以參考下
    2025-01-01
  • 鼠標(biāo)移到圖片上變大顯示而不是放大鏡效果

    鼠標(biāo)移到圖片上變大顯示而不是放大鏡效果

    這篇文章主要介紹了通過(guò)js實(shí)現(xiàn)的,當(dāng)鼠標(biāo)移到圖片上變大顯示而不是放大鏡效果,需要的朋友可以參考下
    2014-06-06
  • 代碼觸發(fā)js事件(click、change)示例應(yīng)用

    代碼觸發(fā)js事件(click、change)示例應(yīng)用

    Chrome , Firfox 不支持fireEvent的方法可以使用dispatchEvent的方法替代,直接給一個(gè)兼容的Code,下面有個(gè)不錯(cuò)的示例,喜歡的朋友可以收藏下
    2013-12-12
  • js獲取頁(yè)面description的方法

    js獲取頁(yè)面description的方法

    這篇文章主要介紹了js獲取頁(yè)面description的方法,涉及javascript操作頁(yè)面元素的相關(guān)技巧,需要的朋友可以參考下
    2015-05-05
  • JavaScript字符串對(duì)象

    JavaScript字符串對(duì)象

    這篇文章主要為大家詳細(xì)介紹了JavaScript字符串對(duì)象,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • JS設(shè)計(jì)模式之訪問(wèn)者模式定義與用法分析

    JS設(shè)計(jì)模式之訪問(wèn)者模式定義與用法分析

    這篇文章主要介紹了JS設(shè)計(jì)模式之訪問(wèn)者模式定義與用法,結(jié)合實(shí)例形式分析了javascript設(shè)計(jì)模式中訪問(wèn)者模式的概念、功能、應(yīng)用場(chǎng)景及使用方法,需要的朋友可以參考下
    2018-02-02

最新評(píng)論

弥勒县| 凤凰县| 靖州| 福海县| 安阳县| 宁晋县| 乌拉特前旗| 天长市| 武功县| 宁夏| 扶沟县| 云林县| 五河县| 汉源县| 石首市| 沅江市| 澄城县| 长垣县| 北宁市| 安西县| 汉中市| 东山县| 永清县| 应用必备| 石柱| 温泉县| 平利县| 南康市| 长兴县| 石屏县| 金华市| 凤冈县| 伊金霍洛旗| 尉犁县| 揭阳市| 桐柏县| 休宁县| 黄冈市| 扬州市| 琼中| 徐州市|