一、實現效果
實現搜索框,表格和翻頁效果
二、組件實現
1、創建表格組件頁面
(1)創建文件
在文件根目錄(與pages同級)直接創建components文件夾,并創建表格的頁面common-table/index
(2)視圖層
a、寫入表頭
循環由主頁面傳遞的columns,數據為字段名label,寬度為設置的width
b、寫入表格行數據
循環主頁面傳遞的list,根據表頭字段對應展示行信息
c、暫無數據展示
如果傳遞的list有數據就展示表格信息
<view wx:if="{{tableData.list.length > 0}}" class="table">
如果傳遞的數據為空,就展示暫無數據提示
<view wx:else class="none">暫無數據</view>
d、翻頁實現
如果行的長度大于0就展示翻頁功能,其實這個也可以放到<view wx:if="{{tableData.list.length > 0}}" class="table">中,寫入上一頁方法,下一頁方法,頁數/總頁數
(3) json
開啟component表明是組件
(4)邏輯層
a、獲取主頁面傳遞的表格數據
在properties參數中寫入表格數據tableData,類型為對象,其值為columns和list
b、獲取主頁面傳遞的翻頁數據
寫入翻頁用到的數據當前頁碼page和總頁數totalPage
c、寫入翻頁方法-上一頁
當前頁碼大于 1 時,觸發一個名為 'prev'
的自定義事件,并傳遞上一頁的頁碼(page - 1
)給父組件。
this.triggerEvent('next', {page: this.data.page + 1
});
我這個組件要向外拋出一個叫 'prev'
的事件,并且帶上參數 `{ page: 當前頁-1 }”,讓父組件知道需要加載上一頁的數據。
d、寫入翻頁方法-下一頁
當用戶當前所在的頁面 **不是最后一頁(page < totalPage
)**時,就觸發一個名為 next
的自定義事件,并攜帶下一個頁面的頁碼(page + 1
)。
this.triggerEvent('next', {page: this.data.page + 1
});
這個組件要向外拋出一個叫 'next'
的事件,并且帶上參數 `{ page: 當前頁+1 }”,讓父組件知道需要加載下一頁數據。”