Weex組件:<list>

官方手冊(cè)

  • <list> 組件是提供垂直列表功能的核心組件株汉,擁有平滑的滾動(dòng)和高效的內(nèi)存管理吕朵,非常適合用于長(zhǎng)列表的展示操骡。最簡(jiǎn)單的使用方法是在<list> 標(biāo)簽內(nèi)使用一組由簡(jiǎn)單數(shù)組 repeat 生成的 <cell> 標(biāo)簽填充。

子組件

<list> 的子組件只能包括以下4種組件或是 fix 定位的組件惑朦,其他形式的組件將不能被正確的渲染呢簸。

  • <cell>用于定義列表中的子列表項(xiàng)矮台。Weex 會(huì)對(duì)<cell>進(jìn)行高效的內(nèi)存回收以達(dá)到更好的性能。

  • 當(dāng) <header>到達(dá)屏幕頂部時(shí)根时,吸附在屏幕頂部瘦赫。

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

  • <loading> 用于給列表添加上拉加載更多的功能蛤迎。

特性

  • loadmoreoffset {number}:默認(rèn)值為 0耸彪,觸發(fā) loadmore事件所需要的垂直偏移距離(設(shè)備屏幕底部與頁面底部之間的距離)。當(dāng)頁面的滾動(dòng)條滾動(dòng)到足夠接近頁面底部時(shí)將會(huì)觸發(fā) loadmore 這個(gè)事件忘苛。

事件

  • loadmore:如果滾動(dòng)到底部將會(huì)立即觸發(fā)這個(gè)事件,你可以在這個(gè)事件的處理函數(shù)中加載下一頁的列表項(xiàng)唱较。

約束

  • 不允許相同方向的 <list> 或者 <scroller> 互相嵌套扎唾,換句話說就是嵌套的 <list>/<scroller> 必須是不同的方向。

  • <list> 為根節(jié)點(diǎn)時(shí)無需設(shè)置高度南缓,但是內(nèi)嵌<list>高度必須可計(jì)算胸遇,你可以使用flexpostion<list> 設(shè)為一個(gè)響應(yīng)式高度(例如全屏顯示), 也可以顯式設(shè)置<list> 組件的 height 樣式。

示例vue

<template>
  <list class="list" @loadmore="fetch" loadmoreoffset="10">
    <cell class="cell" v-for="num in lists">
      <div class="panel">
        <text class="text">{{num}}</text>
      </div>
    </cell>
  </list>
</template>
<script>
  const modal = weex.requireModule('modal')
  const LOADMORE_COUNT = 4
  export default {
    data () {
      return {
        lists: [1, 2, 3, 4, 5]
      }
    },
    methods: {
      fetch (event) {
        modal.toast({ message: 'loadmore', duration: 1 })
        setTimeout(() => {
          const length = this.lists.length
          for (let i = length; i < length + LOADMORE_COUNT; ++i) {
            this.lists.push(i + 1)
          }
        }, 800)
      }
    }
  }
</script>
<style scoped>
  .panel {
    width: 600px;
    height: 250px;
    margin-left: 75px;
    margin-top: 35px;
    margin-bottom: 35px;
    flex-direction: column;
    justify-content: center;
    border-width: 2px;
    border-style: solid;
    border-color: rgb(162, 217, 192);
    background-color: rgba(162, 217, 192, 0.2);
  }
  .text {
    font-size: 50px;
    text-align: center;
    color: #41B883;
  }
</style>

SDK源碼

  • 組件類:WXListComponent
[self registerComponent:@"list" withClass:NSClassFromString(@"WXListComponent") withProperties:nil];
  • WXScrollerComponent組件繼承而來汉形,這個(gè)和UITableView繼承自UIScrollView的思路是一樣的
@interface WXListComponent : WXScrollerComponent
  • 在具體實(shí)現(xiàn)上纸镊,里面包含了一個(gè)UITableView,并沒有基于WXScrollerComponent來實(shí)現(xiàn)概疆。使用了繼承逗威,同時(shí)又自己另外搞一套,思路還是比較奇特的岔冀。
- (UIView *)loadView
{
    return [[WXTableView alloc] init];
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    
    _tableView = (UITableView *)self.view;
    _tableView.allowsSelection = NO;
    _tableView.allowsMultipleSelection = NO;
    _tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
    _tableView.delegate = self;
    _tableView.dataSource = self;
    _tableView.userInteractionEnabled = YES;
}
  • 自定義的WXTableView是一個(gè)內(nèi)部類凯旭,沒做什么,只是關(guān)閉了AutoLayout而已。其他地方也不會(huì)用到罐呼,所以這里用內(nèi)部類的方式還是可以理解的鞠柄。
@interface WXTableView : UITableView

@end

@implementation WXTableView

+ (BOOL)requiresConstraintBasedLayout
{
    return NO;
}

- (void)layoutSubviews
{
    [super layoutSubviews];
    [self.wx_component layoutDidFinish];
}

@end
  • 至于“擁有平滑的滾動(dòng)和高效的內(nèi)存管理”,暫時(shí)還沒看出有什么特別的地方嫉柴。當(dāng)然iOS的UITableView已經(jīng)足夠出色厌杜,這樣說也是沒問題的。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末计螺,一起剝皮案震驚了整個(gè)濱河市夯尽,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌危尿,老刑警劉巖呐萌,帶你破解...
    沈念sama閱讀 217,406評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異谊娇,居然都是意外死亡肺孤,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門济欢,熙熙樓的掌柜王于貴愁眉苦臉地迎上來赠堵,“玉大人,你說我怎么就攤上這事法褥∶0龋” “怎么了?”我有些...
    開封第一講書人閱讀 163,711評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵半等,是天一觀的道長(zhǎng)揍愁。 經(jīng)常有香客問我,道長(zhǎng)杀饵,這世上最難降的妖魔是什么莽囤? 我笑而不...
    開封第一講書人閱讀 58,380評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮切距,結(jié)果婚禮上朽缎,老公的妹妹穿的比我還像新娘。我一直安慰自己谜悟,他們只是感情好话肖,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著葡幸,像睡著了一般最筒。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蔚叨,一...
    開封第一講書人閱讀 51,301評(píng)論 1 301
  • 那天是钥,我揣著相機(jī)與錄音掠归,去河邊找鬼。 笑死悄泥,一個(gè)胖子當(dāng)著我的面吹牛虏冻,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播弹囚,決...
    沈念sama閱讀 40,145評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼厨相,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了鸥鹉?” 一聲冷哼從身側(cè)響起蛮穿,我...
    開封第一講書人閱讀 39,008評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎毁渗,沒想到半個(gè)月后践磅,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,443評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡灸异,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評(píng)論 3 334
  • 正文 我和宋清朗相戀三年府适,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片肺樟。...
    茶點(diǎn)故事閱讀 39,795評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡檐春,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出么伯,到底是詐尸還是另有隱情疟暖,我是刑警寧澤,帶...
    沈念sama閱讀 35,501評(píng)論 5 345
  • 正文 年R本政府宣布田柔,位于F島的核電站俐巴,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏硬爆。R本人自食惡果不足惜窜骄,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望摆屯。 院中可真熱鬧,春花似錦糠亩、人聲如沸虐骑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽廷没。三九已至,卻和暖如春垂寥,著一層夾襖步出監(jiān)牢的瞬間颠黎,已是汗流浹背另锋。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留狭归,地道東北人夭坪。 一個(gè)月前我還...
    沈念sama閱讀 47,899評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像过椎,于是被迫代替她去往敵國(guó)和親室梅。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評(píng)論 2 354

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

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫疚宇、插件亡鼠、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,102評(píng)論 4 62
  • 本篇文章主要介紹以下幾個(gè)知識(shí)點(diǎn):通知的使用;調(diào)用系統(tǒng)相機(jī)拍照或調(diào)用相冊(cè)選取照片敷待;播放多媒體文件间涵。 8.1 使用通知...
    開心wonderful閱讀 1,234評(píng)論 1 6
  • 周末...應(yīng)該是每個(gè)人忙碌五天之后給自己放假輕松的時(shí)光...而它對(duì)于我這個(gè)“單親”媽媽來說...周末比...
    寒影凝閱讀 232評(píng)論 1 1
  • R:不要把別人的解決方法作為定義問題的方法勾哩。 I:對(duì)待問題,慣性思維會(huì)認(rèn)為別人對(duì)問題的解決方法就是問題必定的解根盒。 ...
    文藝小草閱讀 147評(píng)論 0 0
  • 2017.8.1 星期二 晴轉(zhuǎn)轉(zhuǎn)陰 親子日記(99) 今天跟老公去醫(yī)院拍了片钳幅,回來時(shí)正是中午,所以我都曬爆皮了炎滞,到...
    于澤媽媽閱讀 150評(píng)論 0 1