程序構(gòu)建
weex微應(yīng)用 | 微信小程序 |
---|---|
通過webpack打包構(gòu)建成一個純JavaScript文件几迄,需要開發(fā)者自己寫打包腳本蟀给,非常靈活敷硅。 | 通過IDE打包虱饿,打包路徑是一個黑盒,不需要開發(fā)者寫打包腳本绷跑,必須按照它的規(guī)則書寫入口以及業(yè)務(wù)代碼拳恋。 |
代碼包無限制大小 | 限制大小2M |
無配置文件 | 需要入口配置文件來配置頁面必須依賴的Path |
應(yīng)用設(shè)計指南
weex微應(yīng)用 | 微信小程序 |
---|---|
無 | 包含了視覺,交互等常規(guī)設(shè)計 微信小程序設(shè)計指南 |
應(yīng)用接入指南
weex微應(yīng)用 | 微信小程序 |
---|---|
有你踩,但是很分散 | 包含了應(yīng)用接入指南主體 微信小程序接入指南 |
數(shù)據(jù)
weex微應(yīng)用 | 微信小程序 |
---|---|
無 | 可查看運(yùn)營數(shù)據(jù) 小程序數(shù)據(jù)助手诅岩,這是發(fā)布平臺的一部分 |
開發(fā)者社區(qū)支持
weex微應(yīng)用 | 微信小程序 |
---|---|
有,太分散带膜,weex主要在https://segmentfault.com/t/weex , Vue的問題在 https://github.com/vuejs/vue/issues | 開發(fā)者社區(qū) |
無 | 量身打造的 UI 組件庫 https://github.com/Tencent/weui-wxss |
無 | 量身打造的設(shè)計庫 https://github.com/weui/weui-design |
開發(fā)者數(shù)量少鸳谜,百度或google搜索出來的信息量少 | 開發(fā)者眾多膝藕,問題能搜索出來 |
IDE集成開發(fā)環(huán)境
weex微應(yīng)用 | 微信小程序 |
---|---|
無 | 有提供IDE集成開發(fā)環(huán)境,包括調(diào)試咐扭,發(fā)布等環(huán)節(jié)芭挽。 |
調(diào)試需使用weex-toolkit | 調(diào)試集成在IDE中 |
調(diào)試分為Debugger和Inspector,只允許單獨(dú)使用一種 | 在IDE面板中既可以Debug也可以inspector還有網(wǎng)絡(luò)請求等等可查看 |
如果要調(diào)試需要額外安裝 weex-debug | 不需要 |
如果要分析性能依賴Safari | 提供簡單易用的性能分析工具 |
編輯器隨意蝗肪,如果要著色袜爪,提示,需要開發(fā)者自己找插件 | 集成在IDE中提供諸如智能提示薛闪,代碼著色等 |
無法實(shí)時預(yù)覽 | 可以實(shí)時預(yù)覽 |
釘釘js-api需要依賴釘釘客戶端模擬器包 | 無需辛馆,已經(jīng)模擬實(shí)現(xiàn)大部分api |
無發(fā)布平臺 | IDE可以發(fā)布,將小程序代碼上傳到微信小程序后臺 |
無 | IDE有更多細(xì)節(jié)功能豁延,可參考:uplog |
文件組織
weex微應(yīng)用 | 微信小程序 |
---|---|
通過vue單組件的方式組織昙篙,也可以使用render的方式,完全取決于開發(fā)者 | wxml wxss js的方式 诱咏,開發(fā)者不可控 |
Vue構(gòu)造函數(shù) | App Page |
生命周期
weex微應(yīng)用 | 微信小程序 |
---|---|
每一個組件都有自己獨(dú)立的生命周期 | Page 才有苔可,并且一個頁面只能有一個Page |
Vue的生命周期方法 | onLoad ... 之類 Page |
一個完整的應(yīng)用,比如釘釘客戶端在后臺袋狞,應(yīng)該注冊在 入口文件中 | 在App中 App焚辅,并且一個完整的小程序只允許有一個App映屋,可以包含多個Page,一個Page代表一個完整的頁面同蜻,且小于等于5 |
頁面跳轉(zhuǎn)
weex微應(yīng)用 | 微信小程序 |
---|---|
可以使用vue-router或者openLink跳轉(zhuǎn)bundle.js棚点,等等... | 只有一種路由模塊 路由 |
數(shù)據(jù)綁定
weex微應(yīng)用 | 微信小程序 |
---|---|
邏輯判斷:v-if="x"
|
wx:if="{{x}}" |
數(shù)據(jù)綁定:<div> {{ message }} </div>
|
<view> {{ message }} </view> |
屬性賦值:class="id"
|
class="{{ id }}" |
運(yùn)算: :class="[id ? 'a': 'b']"
|
class="{{ id ? true : false }}" |
數(shù)組: <div v-for="item in items">{{ item }}</div>
|
<view wx:for="{{ items }}>{{ item }}</view> " |
對象:使用計算屬性 或 data="foo"
|
data="{{foo, bar}}" object: data:{foo: 'my-foo',bar: 'my-bar'}
|
Vue 語法皆可支持...N | 無 |
列表渲染
weex微應(yīng)用 | 微信小程序 |
---|---|
數(shù)組: <div v-for="item in items">{{ item }}</div>
|
<view wx:for="{{ items }}>{{ item }}</view> " |
對象迭代: <div v-for="item in objects">{{ item }}</div>
|
無 |
獲取索引:<div v-for="(item,index) in items">{{ index }} {{ item }}</div> (item的命名可以隨便換) |
<div wx:for="{{ items }}">{{index}} {{ item }}</div> (需要使用wx:for-index或者wx:for-item修改) |
唯一標(biāo)識 <div v-for="item in items" :key="item.id"></div>
|
<view wx:for="{{ items }}" wx:key="{{ item.id }}"></view> |
Vue 還有很多其他的處理方式,詳細(xì)查看 列表渲染 | 無 |
條件渲染
weex微應(yīng)用 | 微信小程序 |
---|---|
v-if="admin" | wx:if="{{ admin }}" |
包裝元素: <template v-if="ok"><.../></template>
|
<block wx:if="{{ ok }}"></block> |
else if and else:<div v-if="le > 5 "></div><div v-else-if="le > 2"></div><div v-else></div>
|
<view wx:if="{{length > 5}}"> 1 </view><view wx:elif="{{length > 2}}"> 2 </view><view wx:else> 3 </view> |
Vue支持的更多埃仪,詳細(xì)查看 條件渲染 乙濒,且v-show指令在weex中不支持 | 無 |
事件
weex微應(yīng)用 | 微信小程序 |
---|---|
@click="handler"或者v-on:click="handler" | bindtap="handler" |
不支持冒泡 | 支持冒泡 |
事件對象為 weex構(gòu)建 | 事件對象支持touch event |
文件引用
weex微應(yīng)用 | 微信小程序 |
---|---|
支持ES import 或者 require,決定權(quán)在于開發(fā)者 | 只允許import 或者 include卵蛉,決定權(quán)在于微信 |
組件級別的支持 | 模板載入 include |
樣式
weex微應(yīng)用 | 微信小程序 |
---|---|
只支持單組件 或者 style in Js 需要額外處理颁股,文件怎么組織和引用完全的決定權(quán)在于開發(fā)者 | 允許使用 @import 來組織樣式 |
只支持class | 支持 class id element ::after ::befor |
不支持全局樣式 | 支持全局樣式 |
支持內(nèi)聯(lián)樣式 | 同樣支持 |
基于750像素開發(fā) | 基于 rpx 單位開發(fā),建議使用iPhone6視覺稿為基準(zhǔn) |
布局只能使用flexbox | 都支持 |
支持少數(shù)的樣式 | 大部分都支持取決于你的設(shè)備 |
組件
weex微應(yīng)用 | 微信小程序 |
---|---|
容器組件 div scroller list | view scroll-view swiper movable-area |
文本顯示需要依賴text,texttarea | 不需要text組件也可以顯示文本傻丝,本身也有text組件,texttarea |
開關(guān)組件 switch | switch,checkbox,radio |
輪播 slider,indicator | slider 是滑動選擇器 |
媒體 video, image | audio,video,image |
input | input |
瀏覽器 web | 無 |
無 | icon |
無 | contact-button 客服會話 |
無 | map 地圖 |
gcanvas依賴第三方插件 | canvas |
無 | navigator |
無 | picker-view甘有,picker,label,form,button,progress |
其他組件 cell, loading,refresh,waterfall,a | 無 |
功能
weex微應(yīng)用 | 微信小程序 |
---|---|
釘釘js-api,weex自帶的module葡缰,第三方插件的module | 微信小程序js-api |