為什麼是 Solid.js? 原本我的公司也是使用 react ,但 react 的學習成本其實滿高的,這時候同事突然提說要不要來試試看Solid.js,那為什麼是它呢?
Solid.js 號稱擁有 JSX 語法,類似於 React hook 的語法。
先來看以下一段程式碼
import { createSignal, createEffect} from "solid-js";
export default function Hello() {
const [count,setCount] = createSignal<number>(0);
//count: setter, setCount: getter
const increment = () => setCount(count() + 1);
creatEffect(()=>{
if(count === 5){
console.log('數到5了')
}
}) //不需要再手動寫入要偵測變動的dependency
//如果是 react
useEffect(() => {
setInterval(() => {
setCount(count + 1);
}, 1000);
}, []); //這邊未將count放入dependency,有些linting會提醒你
return(
<button onClick={increment}>click {count} time</button>
)
}
Solid.js 性能直逼原生 js 是如何做到的呢?
👉 每個組件裏的 createEffect 裏面去收集對應的依賴, 在 set 改變值後,都會重新執行這些方法。看起來就像是實時更新了一樣。
我們最主要開始使用的原因是因為希望可以把 UI 跟邏輯拆開,因此導入solid.js與react共用試試看,目前想法是很多東西變得滿簡潔的,而且因為跟react很像所以上手也比較無感,接下來再來實作幾個小案例試試看吧!
參考文章: