哐呱哩 · 開源
做得小,響得亮。
為 React 與 React Native 打造的開源狀態管理與動態效果工具。三個專注的套件,從第一次 import 就能用,需要多少再擴充多少。
- 3 個套件
- React · React Native
- 內建 TypeScript 型別宣告
- ISC 授權
restate()useDraft.set()shallowpersistedRestate()useRestateScope()useAnimatedValuetiming()spring()interpolate()Animated.KeepAnimated.SceneMotionNumberMotionHighlightMotionListMotionSwapMotionSheetProgressRingrestate()useDraft.set()shallowpersistedRestate()useRestateScope()useAnimatedValuetiming()spring()interpolate()Animated.KeepAnimated.SceneMotionNumberMotionHighlightMotionListMotionSwapMotionSheetProgressRing

狀態管理·React + React Native
01
一個 Hook 就能共享,何時儲存由你決定。
不需要 Provider、action 或 reducer,元件就能讀取同一個值。只有選取的部分改變時才會重新渲染,儲存與還原只在你指定的時候發生。
- 不需要 Provider 就能共享
- 只訂閱你選取的部分
- 明確地儲存到 IndexedDB 或 MMKV
安裝npm install @kkwaenggwari/restate
即時
兩個元件,一個 store
按下任一邊的按鈕。兩個面板讀取同一個 restate() 值並一起變化;運費標章只監聽一個選取結果。
02
一個值,指揮整個畫面。
在 React DOM 上使用你在 React Native Animated 中熟悉的 timing、spring 和 interpolate。一個值驅動眾多元素的樣式,而且不會每一格都觸發 React 渲染。
- 你熟悉的 React Native Animated API
- 被中斷時保留位置與速度
- 擁有者消失時自動清理
安裝npm install @kkwaenggwari/animated
即時
一個 Value,十二個形狀
滑桿只改變一個 Value,十二個形狀的位置、旋轉、大小和圓角全都由它推導。按一下彈簧,再趁動畫進行中抓住滑桿試試。

完成品元件·React · React Native
03
難做的互動,已經替你完成。
滾動的數字、會移動的醒目標示、只有變動項目才會動的清單、底部面板與滑動操作。只要傳入資料,不需要 Provider 或初始化呼叫,React 與 React Native 都能用。
- 數字、分頁標籤、清單與面板
- Web 與原生使用同一個 import
- 新的輸入會從畫面上的當下狀態繼續
安裝npm install @kkwaenggwari/animated-chorus @kkwaenggwari/animated
即時
只需要資料的儀表板
選一個時段:MotionHighlight 移過去,MotionNumber 滾動,ProgressRing 填滿,MotionList 只移動有變化的列。
02 · 合奏
敲一下,全都動起來。
這個舞台是用 Animated 打造的。一個保存捲動進度的 Value,同時指揮 48 個形狀的位置、旋轉、縮放與透明度。
- 01
- 02
- 03
- 04
progress
從一個 import 開始
一開始不需要包住整個應用程式的 Provider 或全域設定。應用程式需要什麼功能,再加上什麼功能。
只更新需要的部分
只有選取結果改變的元件、使用某個值的元素,以及有移動的列會被更新。
負責到最後
被中斷的動態會從畫面上的當下狀態繼續;擁有者消失時,訂閱與動畫都會被釋放。
型別完整,文件齊全
每個套件都內建 TypeScript 型別宣告,文件提供 39 種語言。