前段時(shí)間比較流行的微信小程序,因?yàn)橐恢睕]有所謂內(nèi)測(cè)碼也沒具體關(guān)注。拖到現(xiàn)在正好借組內(nèi)分享的時(shí)機(jī)來仔細(xì)了解一下微信小程序。了解一個(gè)新的事物無外乎從是什么(本質(zhì)),怎么用(具體用法),為什么用(優(yōu)缺點(diǎn))來學(xué)習(xí),首先分析一下微信小程序是什么,聽起來比較高大上,說實(shí)話原來我確實(shí)挺疑惑,到底這一套是什么開發(fā)機(jī)制,native?hybrid?純h5?看網(wǎng)上各種教程上來就說api說語法,感覺不先理清楚是什么的問題就去搬api過來純粹是耍流氓。
一、微信小程序是什么:
言歸正傳,微信小程序的本質(zhì)是什么?個(gè)人理解微信小程序本質(zhì)還是一套前端框架,微信團(tuán)隊(duì)基于原來第三方h5頁面在微信里只能通過h5實(shí)現(xiàn)原本可以由native實(shí)現(xiàn)的功能,例如上傳圖片等。進(jìn)而采取的開放部分jsbridge的api來方便開發(fā)者。不過既然作為大廠肯定不會(huì)僅僅開放部分jsbridge的api就完了,順便微信類似vue、react一樣實(shí)現(xiàn)了一套自己的mvvm的框架就是目前的微信小程序。官方文檔這樣描述:框架提供了自己的視圖層描述語言 WXML 和 WXSS,以及基于 JavaScript 的邏輯層框架,并在視圖層與邏輯層間提供了數(shù)據(jù)傳輸和事件系統(tǒng),可以讓開發(fā)者可以方便的聚焦于數(shù)據(jù)與邏輯上。
本質(zhì)還是一套前端框架,代碼最終將會(huì)打包成一份 JavaScript并在小程序啟動(dòng)的時(shí)候運(yùn)行,直到小程序銷毀。模版語法類似vue,接近原生的自定義標(biāo)簽。數(shù)據(jù)綁定和渲染類似vue的語法,不過是以wx:開頭(vue 以v: 作為標(biāo)識(shí)) 事件系統(tǒng)類似react一樣定義了一套自己的事件系統(tǒng)。
二、微信運(yùn)行環(huán)境:
微信小程序運(yùn)行在三端:iOS、Android 和 用于調(diào)試的開發(fā)者工具
在 iOS 上,小程序的 javascript 代碼是運(yùn)行在 JavaScriptCore 中
在 Android 上,小程序的 javascript 代碼是通過 X5 內(nèi)核來解析
在 開發(fā)工具上, 小程序的 javascript 代碼是運(yùn)行在 nwjs(chrome內(nèi)核) 中
頁面的腳本邏輯是在JsCore中運(yùn)行,JsCore是一個(gè)沒有窗口對(duì)象的環(huán)境,所以不能在腳本中使用window等bom對(duì)象。所以類似jquery、zepto等通過window或者document來獲得dom對(duì)象的庫是不能用來使用的。
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動(dòng)安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊(duì)列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識(shí)別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實(shí)現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動(dòng)安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26