React 第一个小游戏,井字棋知识关键点

1、React是一个声明式,高效且灵活的用于构建用户界面的JavaScript库

通过使用组件来告诉React我们希望在屏幕上看到什么。当数据发生变化时,React会高效的更新并重新渲染我们的组件

2、render返回了一个React元素,这是一种对渲染内容的轻量级描述。大多数的React开发者使用了一种名为"JSX"的特殊语法,

语法<div/>会被编译成React.creatElement('div');

3、在JavaScript class中,每次你定义其子类的构造函数时,都需要调用super方法。因此,

所有含有构造函数的React组件中,构造函数必须以super(props)开头;

4、当你遇到需要同时获取多个子组件数据,或者两个组件之间需要相互通讯的情况时,需要把子组件的state数据

提升至其共同的父组件当中保存。之后父组件可以通过props将状态数据传递到子组件当中。这样应用当中所有组件

的桩体数据就可以更方便的同步共享了。

5、为了提高可读性,我们把返回的React元素拆分成了多行,同时在最外层加了小括号,这样JavaScript解析时候就不会

在return的后面自动插入一个分号从而破坏代码结构了;

6、因为DOM元素<button>是一个内置组件,因此其onClick属性在React中有特殊含义。而对于用户自定义的组件来说,命名就可以

由用户自己定义了。我们给Square的onClick和Board的handleClick赋予任意的名称,代码依旧有效。在React中,有一个命名规范,

通常会将代表时间的监听命名为on[Event],将处理事件的监听方法命名为handle[Event];

为什么不可变性在React中非常重要?

1、简化复杂的功能(a、可以实现“时间旅行”功能 b、撤销 c、恢复)

2、跟踪数据的改变

3、确定在React中何时重新渲染

函数组件:

如果你想要写的组件只包含一个render方法,并且不包含state,那么使用函数组件;

这个函数接受props作为参数,然后返回需要渲染的元素;