Weex初見

Weex 是一個(gè)跨棧的技術(shù),棧:前端開發(fā)、Vue.js、iOS和Android。

一、工作原理

Weex端:整一個(gè)串聯(lián)本地,云端,分發(fā)整個(gè)鏈路的技術(shù),使本地可以像寫web頁面一樣編寫app。命令行使之編譯成一段JavaScript代碼,生成一個(gè)Weex的JS bundle,部署到云端??蛻舳送ㄟ^下載之,Weex SDK準(zhǔn)備好一個(gè)JavaScript執(zhí)行環(huán)境,并且在用戶打開一個(gè) Weex 頁面時(shí)在這個(gè)執(zhí)行環(huán)境中執(zhí)行相應(yīng)的 JS bundle。執(zhí)行過程中產(chǎn)生的各種命令發(fā)送到 native 端進(jìn)行界面渲染、數(shù)據(jù)存儲、網(wǎng)絡(luò)通信、調(diào)用設(shè)備功能及用戶交互響應(yīng)等功能。

客戶端:Weex的IOS客戶端中都會(huì)運(yùn)行一個(gè)JavaScript引擎,來執(zhí)行JS bundle,iOS 環(huán)境中渲染出來的是原生的組件,不是 DOM Element,Weex 中的事件是由原生組件捕獲并觸發(fā)的。

Weex實(shí)現(xiàn)了內(nèi)置組建和自定義組件,故無法使用所有HTML標(biāo)簽,可將現(xiàn)有的本地組件集成到Weex平臺中,同時(shí)引入基礎(chǔ)內(nèi)置模塊或者集成已有的原生模塊,Weex是多框架多平臺,一份代碼,三端可用,把渲染原生UI的能力賦予某個(gè)前端框架,主要支持Vue.js和Rax。

二、Vue.js

Weex只用運(yùn)行時(shí)的方式

上下文:vue實(shí)例,單頁面技術(shù)應(yīng)用Veux和Vue-Router

樣式:支持單個(gè)類選擇器,且只支持CSS的子集,每一個(gè)樣式都是scoped,具體有盒模型,F(xiàn)lexbox布局模型,transform

web渲染器:weex-vue-render 來實(shí)現(xiàn)它。

單文件組件:.vue,在構(gòu)建時(shí)便于到render函數(shù)里

編譯目標(biāo):weex-loader來編譯*.vue文件,能把*.vue轉(zhuǎn)化為簡單的javascript

事件:點(diǎn)擊,長按,appear事件,disappear事件

三、IOS實(shí)現(xiàn)

Weex SDK只提供渲染,提供了一些默認(rèn)的組件和能力,如果需要一些特性但Weex未必提供,

注冊SDK默認(rèn)的Module、Handler和Component

Module:一個(gè)操作的方法集合,可以自定義module:WXModuleProtocol,WX_EXPORT_METHOD這個(gè)宏暴露出需要透出到JavaScript調(diào)用的方法。需了解module高階用法

Handler:WeexSDK engine中一個(gè)service的概念,被component,modules和其他的handle實(shí)現(xiàn)中調(diào)用

Component:類似于Widget,Component可擴(kuò)展WXComponent,WeexSDK engine與內(nèi)置div組件功能一致

四、Native JS 通信

自定義通知事件? fireEvent

事件回調(diào)? callback











參考:

http://weex.apache.org/cn/guide/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容