百度發佈智能小程序開發方案

13日下午,2018百度·智能小程序學院首場線下公開課在北京舉行,百度官方數據顯示,自今年7月份百度AI開發者大會以來,百度智能小程序月活已經過了1.5億,值得一提的是,智能小程序已經在GitHub上開源,百度也即將成立開源聯盟,促進小程序生態的發展和建設。會上,百度資深前端工程師張自萌還詳解了智能小程序的開發解決方案,以下是對其演講內容的整理報道。

智能小程序開發流程

首先是智能小程序的接入問題,但這要分爲兩種情況,一是沒有小程序的開發經驗,從零開始的開發者,另一種是有過微信小程序開發經驗的開發者。

對於沒有開發過小程序的開發者,百度給出的解決方案是使用原生或使用應用層框架的方式進行開發。

原生開發

原生開發指的是依據百度智能小程序的規範進行開發,它被分成了視圖層和邏輯層,在視圖層上,CSS是標準的CSS,與H5一樣有一個標記語言,標記是SWAN文件,它提供了自己的容器,當然,開發者也可以自定義開發一些組件。

在邏輯層上,智能小程序定義了一套自己的生命週期,主要是在頁面那一層,與web不同的是,在做頁面切換的時候,調用了頁面的生命週期,除了生命週期之外,還有數據管理、數據驅動的方式,通過數據驅動,模板的設計成本會變得非常低。

應用層框架接入

現如今,跨平臺開發成爲開發者關注的焦點,當然百度智能小程序也自然不會忽視開發者的需求。當開發者希望能夠以一套代碼能夠同時運行在百度智能小程序、微信小程序或Web端上時,跨平臺解決方案就派上了用場。

之前我們曾在7月份報道過智能小程序多端運行的原理,即智能小程序和 Web 是相似的,它使用的技術都是 Web 技術,可以在瀏覽器上運行,由於智能小程序有邏輯層和視圖層,邏輯層最核心的一點是 JS 引擎,不管客戶端還是瀏覽器,都有 JS 引擎,在不同的平臺使用不同的渲染技術渲染,這就保證大家寫的代碼一次開發在不同平臺得到運行。

但在真正使用時,你需要使用框架層接入的方式來實現,通過源碼框架層開發,編譯之後跑在各自的平臺上,在這方面,業界出名的框架有Taro、Mpvue、WePY,它們各自的團隊都仍在積極的維護和迭代中,在這方面,百度表示,它們願意擁抱第三方合作共建小程序框架的開發。

下面重點講一下三個框架的特點。

WePY

WePY是一個MVVM框架,它跟Vue語法非常類似,是一個類Vue的框架,開發的時候像Vue,但是底層不是Vue;它支持組件的開發,包括Vue所有的循環、嵌套、組件Props傳值、組件通信、自定義事件、第三方組件。

WePY默認支持的是ESNext標準,包括setData性能優化(髒檢測)、事件傳參、編譯器(Babel、Ts、Less、Sass)、Mixin,同時,它還支持NPM資源,能夠處理NPM資源的依賴。

Mpvue

Mpvue和WePY非常類似,它使用Vue.js runtime支持了小程序,實現小程序和H5的組件複用,它可以使用Vue的數據管理,包括Web的支持等。

Taro

有了Vue,當然不能缺少React,比較出名應該就是Taro了,Taro遵循的是React 語法規範,由於React受衆廣,它能降低小程序開發的學習成本。

Taro在上面做了一些JSX處理,採用JSX作爲模板,相比字符串模板,更自由、自然、更具表現力,不依賴字符串模板語法糖,也能完成複雜處理。

Taro還有跨端解決方案,可以給Taro後期多端開發帶來很大的便利。

下圖中,左邊是基於Taro的京東好物街智能小程序,右邊是基於Mpvue的官方小程序實例,大家可以打開百度APP掃碼體驗一下。

最後,這是原生開發和使用應用層框架開發的總結和比較,它們沒有優劣之分,只有適不適用,開發者可以根據實際情況自行選用。

如果你開發過微信小程序

相信有不少開發者開發過微信小程序了,那麼,我們如何從微信小程序一鍵轉到百度智能小程序上呢?大家可以看看下面的視頻:

左邊是微信小程序,是跑在微信開發者工具裏的,轉換之後先輸入微信小程序的原代碼,生成目錄,然後開始靜態編譯,靜態轉換,在百度開發者工具裏打開產出目錄,沒動一行代碼,遷移後,效果一模一樣,但是有一些登錄支付的能力需要自己處理一下。

也就是說,開發者如果已有微信小程序,可以採用原生開發,使用遷移工具即可。百度的遷移工具有四大特點:

  • 代碼搬遷。相同代碼,會原樣搬遷,保持代碼行數、列數一致,方便開發者直接二次開發。

  • 轉換log。做一系列的代碼轉換,最終都會輸出log給開發者,輔助開發者進行二次開發。

  • 視圖轉換。Wx指令轉換成s-指令,轉換非標準標籤語法,import和include引用資源的轉換。

  • 語法轉換。邏輯表達式中的API轉換,一元運算符中API轉換,刪除不支持的API。

##開發工具鏈

選擇解決方案之後,我們就需要開發小程序了,開發的時候就要用到開發工具鏈,這是小程序開發裏必不可少的流程,在這方面,百度智能小程序提供了開發者工具,裏面囊括了編輯器、模擬器、調試器、引擎調試、編譯預覽等。

由於小程序是用在手機上,但在手機上開發調試體驗不好,爲了方便大家開發,智能小程序支持在PC端開發,所以在PC上有一個模擬器,仿真效果和手機端的運行效果幾乎沒有什麼區別,而且百度智能小程序支持多平臺切換,可以切換成安卓、蘋果,而且還可以模擬wifi2G、3G和無網絡等不同的網絡環境。

百度智能小程序的編輯器是根據小程序的代碼深度定製的,主要是代碼提示,如果你在使用這個編輯器開發過程中使用一些API,它都幫你自動補全,它還能支持css,js,swan等多文件格式的高亮。

開發之後離不開調試,調試作爲一個web開發者最常用的功能,智能小程序自然也不會少,主要包括:

  • Swan 節點樣式調試

  • Console 輸入輸出調試

  • Sources 代碼斷點調試

  • Network 網絡抓包調試

  • Storages 編輯展現調試

  • AppData 編輯展現調試

  • Sensors 羅盤,重力感應調試

還有遠程調試,在PC上開發好之後先用遠程調試,因爲是跑在真機上的,PC上有調試面板,真機上做運行,和真機運行的效果一樣。開發者工具裏模擬開發沒有問題之後再去遠程調試裏調試,調試之後再使用預覽,再看一遍,沒有問題就可以上傳了。

百度智能小程序還有編譯工具,它支持CMD模式的編譯、AMD模式的編譯、自定義編譯條件、熱編譯和增量編譯等。

更多有關百度智能小程序的內容可以查看以下文章:

百度新發布的智能小程序是什麼?

蘇寧:我們開發百度小程序遇到的那些“坑”

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章