努力想出最好的方法来解决它。我可以使用递归调用requestAnimationFrame
来进行游戏循环:
export interface Props {
name: string;
points: number;
onIncrement?: () => void;
onDecrement?: () => void;
}
class Hello extends React.Component<Props, object> {
constructor(props: Props) {
super(props);
}
render() {
const { name, points, onIncrement, onDecrement } = this.props;
return (
<div className="hello">
<div className="greeting">
Hello {name + points}
</div>
<button onClick={onDecrement}>-</button>
<button onClick={onIncrement}>+</button>
</div>
);
}
componentDidMount() {
this.tick();
}
tick = () => {
this.props.onIncrement();
requestAnimationFrame(this.tick)
}
}
但是如果我想要在每一帧上怎么办:
- Component1 做 X
- Component2 做 Y
- Component3做Z
我可以在每个组件中有另一个循环,但是我的理解是进行多个requestAnimationFrame
循环是不好的做法,并且会严重影响性能。
所以我在这里迷路了。如何让另一个组件使用相同的循环?(如果这是最好的方法的话!)