是否可以使用 React 而不是使用似乎破壞可重用性的 Redux 或背景關系和減速器在模型中(在 MVC 范式中)使用傳統的 Javascript 類?如果是這樣,我們如何有效地“訂閱”改變這些物件中資料的動作,以便有效地呈現視圖(即 React 組件)?
uj5u.com熱心網友回復:
訂閱邏輯由您自己解決。React 不提供任何可以在其他類中“借用”的機制。但是 Javascript 中的面向事件編程當然并不是什么新鮮事。所以像模式這樣的事件發射器會起作用。所以這是一個例子(未經測驗,但它應該給你一個想法):
class MyClass {
data = {};
constructor(onTick) {
setInterval(() => {
const now = new Date();
this.data.time = now;
this.data.tillChristmas = (new Date('2021-12-25')) - now;
onTick && onTick(this);
}, 10 * 1e3);
}
}
const MyComp = () => {
const [data, setData] = useState({});
useEffect(() => {
new MyClass(myclass => {
setData(myclass.data);
});
}, []);
return <pre>
{JSON.stringify(data, true, 2)}
</pre>;
// of course, you could present the data in more interesting ways, too.
};
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/380222.html
標籤:javascript 反应 打字稿 哎呀
