1. 程式人生 > >weex 開發 (已放棄了)

weex 開發 (已放棄了)

禁止 div methods 內存回收 設計 box 系統 固定 bug

關於weex 開發 本菜已放棄使用了,當初選擇使用weex 是為了同時支持h5 和 android / ios 三端;想法很不錯,深入之後 突然發現,開發起來並沒有很輕松,因為weex 中有些方法,如果你要兼容三端,可能需要你去寫三套代碼去實現;深感不爽,決定棄坑了!

weex 開發布局方式
在weex 開發中不支持 rem/em/pt 布局方式, 目前只支持flexBox, 和以px為單位的布局方式;
另外 Android 開發是不支持百分比形式的布局方式;並且weex不支持float浮動屬性,默認就是flex;

weex 是以750px 的寬度為基準,當屏幕寬度小於或大於750px時;weex 會自動進行適應,所以在開發中設計圖最好是以750px 的尺寸為標準;
在weex 完全支持 flexBox 的布局方式,並且給予了每個元素 display: flex 的屬性,所以在開發中,在使用flex 布局時,無需重復再次寫 display: flex ;


禁止引入html自帶的一些標簽,並且不要用html5自帶的標簽(header,footer等)weex不識別

不要使用 html自帶標簽和html5 中的語義化標簽, weex是不予以支持的,應使用 div 進行替換;
建議在編寫組件的時候,每一個組件都包裹一個頂層的div,並且頂層div不寫樣式,這樣能夠避免出現一些莫名奇妙的bug;

text 標簽
text 標簽在html 中是不存在的,在weex 中是用來包含文本的,weex 中規定凡是文字的你都必須要用text 標簽包裹,
如:
<text class=‘txt‘>Hello World!</text>
text 還有一個特殊的屬性:
lines {number}: 指定文本行數。默認值是 0 代表不限制行數。
功能類似於 overflow:hidden 當文本超出 lines 行數時,超出部分不予顯示!

另外, 在給text 包裹的文本添加樣式的時候,不要直接以標簽名的,添加屬性,最好以類的形式進行添加,因為瀏覽器中,weex 會把text 標簽渲染成 p 標簽;有時會出現樣式加不上的奇怪情況;


謹記:
1. weex不支持border復合寫法。所以,我們要分開寫
2. 盒模型是border-box,而不是常規瀏覽器下的content-box
3. 不支持float:left/right 用 flex代替
4. 安卓的dpi是一倍,蘋果設備目前都是兩倍的http://www.cnblogs.com/yaozhongxiao/archive/2014/07/14/3842908.html
5. weex不支持rem em ,不支持百分比,但是放心使用,其實內部已經適配好了,不同手機看到的大小肯定不是固定的

### 以上介紹的weex 的通用特性,下面我們介紹weex 組件的使用特性


input 組件

input不支持click事件, 因為input點擊事件,安卓系統就會調用輸入法,可能會造成沖突
input標簽最後一定要寫斜杠或者閉合標簽,否則只能在網頁加載出來,在虛擬機中是加載不出來的。

官方寫法:
<input ref="input" class="input" type="text" @input="oninput" @change="onchange" @focus="onfocus" @blur="onblur"></input>

類html的寫法:
<input ref="input" class="input" type="text" @input="oninput" @change="onchange" @focus="onfocus" @blur="onblur"/>

image 組件
<image> 用於在界面中顯示單個圖片。

註意:在HTML中通常使用的 <img> 標簽在 Weex 中不支持,你應該使用<image>, 在使用image 標簽的時,必須指定樣式中的寬度和高度,否則無法正常顯示。

屬性:
1. placeholder 類似於懶加載的功能,在src 路徑加載完成之前要展示的路徑。
2. resize resize 與三個值
1) contain 縮放圖片,保證圖片寬高最長的部分完全展示在容器中
1) cover 縮放圖片,以保證圖片寬高最短的部分完全展示在容器中,有可能展示不完全
1) stretch 默認值. 按照<image>區域的寬高比例縮放圖片。
3. src 要展示的圖片的 url

list 組件
list 組件支持更多高級功能,由以下子組件提供

<cell>
內部使用cell 標簽進行填充, 用於定義列表中的子列表項, HTML 中的 ul 之於 li;
Weex 會對 <cell> 進行高效的內存回收以達到更好的性能。

<header>
當 <header> 到達屏幕頂部時,吸附在屏幕頂部。

<refresh>
用於給列表添加下拉刷新的功能。

<loading>
<loading> 用法與特性和 <refresh> 類似,用於給列表添加上拉加載更多的功能。


註意:
<list> 的子組件只能包括以上四種組件或是 fix 定位的組件,其他形式的組件將不能被正確的渲染。


weex 內置模塊


modal
modal 模塊提供了以下展示消息框的 API:toast、alert、confirm 和 prompt。
我們在調用 weex 內置模塊時:
const modal = weex.requireModule(‘modal‘)

export default {
methods: {
oninput (event) {
console.log(‘oninput:‘, event.value)
modal.toast({
message: `oninput: ${event.value}`,
duration: 0.8
})
},
onchange (event) {
console.log(‘onchange:‘, event.value)
modal.toast({
message: `onchange: ${event.value}`,
duration: 0.8
})
},
onfocus (event) {
console.log(‘onfocus:‘, event.value)
modal.toast({
message: `onfocus: ${event.value}`,
duration: 0.8
})
},
onblur (event) {
console.log(‘onblur:‘, event.value)
modal.toast({
message: `input blur: ${event.value}`,
duration: 0.8
})
}
}
}

當觸發不同的事件,就會彈出不同的框,可以輸入啊等等。


附上最近看到的一篇博客:

https://blog.csdn.net/Jupiterxx/article/details/80026909

weex 開發 (已放棄了)