微信小程序怎么運(yùn)行?運(yùn)行原理是什么?海淘科技告訴你。微信小程序?qū)⒃诒驹碌?日正式聲線了,不少用戶已經(jīng)做好了最后的準(zhǔn)備,接下來就和小編一起去看看吧。
微信小程序是一種新的連接用戶與服務(wù)的方式,可以在微信中很便捷地獲取和傳播,同時(shí)具有出色的用戶體驗(yàn),非常的方便和具有實(shí)用性。
而且,微信小程序是一個(gè)不需要下載安裝就可使用的應(yīng)用,即走即用,用戶掃一掃或者搜一下即可打開應(yīng)用。小程序(微信小程序和公眾號(hào)有什么區(qū)別?)在微信上是沒有入口。小程序的入口不在微信,而是在二維碼里面,希望小程序的啟動(dòng)更多是來源于掃二維碼。并且,小程序不會(huì)有一個(gè)類似“小程序商店”去下載,不需要訂閱,只有訪問量,也不能推送消息。
先上一張圖幫助大家更好的理解微信小程序的運(yùn)行原理。
微信小程序的生命周期不能不知道,不知道小程序就會(huì)出現(xiàn)各種bug而無法解決。小程序由兩大線程組成:負(fù)責(zé)界面的線程(view thread)和服務(wù)線程(appservice thread),各司其職由互相配合
小程序的生命周期借鑒了Android的生命周期,如果你了解過Android的APP開發(fā),那么理解小程序的就會(huì)很簡(jiǎn)單。
界面線程有四大狀態(tài):
1. 初始化狀態(tài):初始化界面線程所需要的工作,包括工作機(jī)制,基本和我們開發(fā)者沒有關(guān)系,等初始化完畢就向 “服務(wù)線程”發(fā)送初始化完畢信號(hào),然后進(jìn)入等待傳回初始化數(shù)據(jù)狀態(tài)。
2.首次渲染狀態(tài):收到“服務(wù)線程”發(fā)來的初始化數(shù)據(jù)后(就是 json和js中的data數(shù)據(jù)),就開始渲染小程序界面,渲染完畢后,發(fā)送“首次渲染完畢信號(hào)”給服務(wù)線程,并將頁面展示給用戶。
3.持續(xù)渲染狀態(tài):此時(shí)界面線程繼續(xù)一直等待“服務(wù)線程”通過this.setdata()函數(shù)發(fā)送來的界面數(shù)據(jù),只要收到就重新局部渲染,也因此只要更新數(shù)據(jù)并發(fā)送信號(hào),界面就自動(dòng)更新。
4.結(jié)束狀態(tài):這個(gè)就不需要解釋了,相信大家都知道。
服務(wù)線程四大狀態(tài):
1、初始化狀態(tài):無需和其他模塊交流,跟小程序開發(fā)也沒多大關(guān)聯(lián),此階段就是啟動(dòng)服務(wù)線程所需的基本功能,比如信號(hào)發(fā)送模塊。系統(tǒng)的初始化工作完畢,就調(diào)用自定義的onload和onshow,然后等待界面線程的“界面線程初始化完成”信號(hào)。onload是只會(huì)首次渲染的時(shí)候執(zhí)行一次,onshow是每次界面切換都會(huì)執(zhí)行,簡(jiǎn)單理解,這就是唯一差別。
2、等待激活狀態(tài):接收到“界面線程初始化完成”信號(hào)后,將初始化數(shù)據(jù)發(fā)送給“界面線程”,等待界面線程完成初次渲染。
3、激活狀態(tài):收到界面線程發(fā)送來的“首次渲染完成”信號(hào)后,就進(jìn)入激活狀態(tài)既程序的正常運(yùn)行狀態(tài),并調(diào)用自定義的onReady()函數(shù)。
此狀態(tài)下就可以通過 this.setData 函數(shù)發(fā)送界面數(shù)據(jù)給界面線程進(jìn)行局部渲染,更新頁面。
4、后臺(tái)運(yùn)行狀態(tài):如果界面進(jìn)入后臺(tái),服務(wù)線程就進(jìn)入后臺(tái)運(yùn)行狀態(tài),從目前的官方解讀來說,這個(gè)狀態(tài)挺奇怪的,和激活狀態(tài)是相同的,也可以通過setdata函數(shù)更新界面的。畢竟小程序的框架剛推出,應(yīng)該后續(xù)會(huì)有很大不同吧。
以上就是“微信小程序怎么運(yùn)行?運(yùn)行原理是什么?”內(nèi)容了,不知道大家看懂了沒有?