学习了一下用React写UI,以及父子兄弟组件之间的通信,由于最近热衷扫雷,所以动手写了一个。
地址:http://qhxin.com/MyReact/www/SaoLei/index.html
整个界面分成了四个组件:

设计思路:
- 父组件是顶层容器,同时拥有标题栏,用户选择难度级别以及重置雷区的交互也是在这个组件上操作;
- 统计栏和扫雷区组件是顶层组件的子组件,它们俩是兄弟组件,单元格组件是扫雷区组件的子组件;
- 扫雷区组件会在父组件更改难度后,改变宽度,并且重新绘制所有单元格,重置地图和统计;
- 扫雷区组件会在父组件点击重置按钮后,重新绘制所有单元格,重置地图和统计;
- 单元格组件有鼠标左键以及鼠标右键事件操作,会相应的通知其他组件进行更新状态;
- 左键点击翻开一个格子吗,如果遇到周围地雷数目是0的单元格,会遍历周围8个格子,找到未打开并且不是雷的格子,触发左键点击,形成递归遍历。
总的来说还是挺简单的。扫雷还是挺有意思。最近玩扫雷着了魔。