React使用注意事项
render函数中的返回值,return 只能有一个根标签,因为函数只能return一次,编译后会return两次,
return后的括号或者标签的开始要和return在同一行,否则编译会报错。
在 JSX 中使用表达式
你可以任意地在 JSX 当中使用 JavaScript 表达式,在 JSX 当中的表达式要包含在大括号里。
JSX 属性
你可以使用引号来定义以字符串为值的属性:
const element = <div tabIndex="0"></div>;
也可以使用大括号来定义以 JavaScript 表达式为值的属性:
const element = <img src={user.avatarUrl}></img>;
JSX 嵌套
如果 JSX 标签是闭合式的,那么你需要在结尾处用 />, 就好像 XML/HTML 一样:
const element = <img src={user.avatarUrl} />;
警告:
因为 JSX 的特性更接近 JavaScript 而不是 HTML , 所以 React DOM 使用 camelCase 小驼峰命名
来定义属性的名称,而不是使用 HTML 的属性名称。 例如,class 变成了 className,而 tabindex 则对应着 tabIndex.
组件 & Props
组件可以将UI切分成一些的独立的、可复用的部件,这样你就只需专注于构建每一个单独的部件。
组件从概念上看就像是函数,它可以接收任意的输入值(称之为“props”),并返回一个需要在页面上展示的React元素。
函数定义/类定义组件
定义一个组件最简单的方式是使用JavaScript函数:
function Welcome(props) { return <h1>Hello, {props.name}</h1>; }
该函数是一个有效的React组件,它接收一个单一的“props”对象并返回了一个React元素。我们之所以称这种类型的组件为函数
定义组件,是因为从字面上来看,它就是一个JavaScript函数
组件渲染
在前面,我们遇到的React元素都只是DOM标签:
const element = <div />;
然而,React元素也可以是用户自定义的组件:
const element = <Welcome name="Sara" />;
当React遇到的元素是用户自定义的组件,它会将JSX属性作为单个对象传递给该组件,这个对象称之为“props”。
警告:
组件名称必须以大写字母开头。
例如,<div />表示一个DOM标签,但<Welcome />表示一个组件并限定了它的可用范围。