caasih.net

<Then />

做了一個把 React component property 從 T 提升到 Promise<T> 的玩具:@caasi/then

用起來大概像這樣:

I am ???. I am ?? years old.
Delayed counter: .

雖然 TonyQ 大大在 fb 提醒說這樣會打亂 React 的生命週期。但這個套件的初衷是將 component 看成 function ,像 Promise 在 JavaScript 中,把時間抽象掉,只留下「先後順序」那樣。

其實新台語·運動用到的 react-transmit 也做了類似的事情,只是它用 higher-order component 達成,而不是組合 component 。

於是我不關心餵給這個 component 的 promise 們什麼時候完成,我只在意完成後它該怎麼顯示。正如我們寫 React compmonet 時,不在意背後怎麼 render 整個 virtual DOM ,只「描述」我們希望它顯示成什麼樣子。


(說到 higher-order 就有氣,明明是可以好好定義的詞,現在講成什麼「接收一個或以上的 function 作為參數或回傳 function 作為回傳值」,那我要問:「 higher 是比較級,那它是 higher than what? 」,還有「 order 是什麼呢?可以舉 order 為 1 或 order 為 2 的 function 給我看看嗎?」,北七欸)

Creative Commons License