適合使用 Cells 使用的場景
例如在設計 User Profile 頁面的時候,我們會遇到規格裡面希望有這樣的設計:
- 顯示這個使用者最近的文章五篇
- 顯示這個使用者喜歡過的文章五篇
- 顯示這個使用者近期的五篇留言
- 設計上點擊時「不切換分頁」,也「不 Ajax」,點下去馬上要能看到。
在 controller 裡的 code 會是這樣的
而在 View 裡面的 code 會是這樣的
衍生的問題
實作這個頁面時,開發者會遇到一些衍生的 issue。這個頁面一次要撈太多資料了,所以需要上 Cache。那麼 Cache 的標準是依照什麼呢?是針對 User 的 Update At 嗎?
好像不太有效率。假如我希望 Recent Post 與 Recent Comments 被 Cache 的時間長短不同呢?
......
光用想像的,你應該可以想像這個 action 和 view 的程式碼馬上就會被污染到不堪入目...
用 Cells 改寫
如果用 Cells 改寫,那麼程式碼會是這樣的。
原先的 View 改成
看起來好像沒什麼差別? well,你可以這麼做:
馬上就可以把 Cache 和邏輯封裝做的非常漂亮。
在下一篇,我們會介紹 Cells 裡面常用的 API 與一些奇技淫巧。(你會幾乎不知道可以這樣用...因為文件上沒寫...)
系列連結: