快速启动一个React页面!
macOS 或者 Linux 当中用create-react-app可以快速启动一个React页面:
|
|
然后打开src/App.js编辑页面内容即可,页面服务在 http://localhost:3000/
JSX
React支持的的JSX语法能够让HTML的语言直接卸载啊JavaScript语言之中,不需要加任何引号,它允许HTMl和JavaScript混写。
|
|
上述的代码体现了JSX的基本规则,就是遇到HTML标签就用HTML的会泽解析;遇到JavaScript,就用JavaScript规则解析。
JSX允许直接在模版内插入JavaScript的变量,如果这个变量时一个数组就会遍历这个数组。
|
|
模块化
React 允许将代码封装成组件,然后像插入HTML的标签一样,在网页中插入这个组件。使用React.createrClass方法进行生成组件。
JSX中使用’{}’符号来定义变量。
我们可以使用ES6类来定义组件:
我们也可以正常的使用JSX进行定义组件,两个效果时相同的:
上述代码中,HelloMessage
就是一个组件类。模版插入<HelloMessage />
时会自动生成一个HelloMessage的实例,所有的组件类都有自己的render用于输出组件。
在对组件进行命名的时候,首字母必须要大写,不然浏览器会报错,另外,组件类职能包含一个HTML的顶层标签,其他标签必须包裹在顶层标签内,不然浏览器也会报错。
组件的用法和HTML的标签完全一致,可以任意加入该组件的属性<HelloMessage speed=32>
这个表示了该组件加入了一个 speed
值,他的值为32,组件的属性可以在组件类的this.props
对象中获取,比如speed
属性就可以通过this.props.speed
读取。
当然,变量也可以表示用户定义的组件:
有些组件属性在命名上要注意,比如class
,for
属性需要写成className
,htmlFor
。因为这个事JavaScript的保留字。
PropTypes
组件的属性可以接受任何值,字符串,对象,函数等,又是我们想要验证组件的属性是否符合要求的时候,这个时候就要用到PropsType的属性。
组件类的PropTypes
属性,是用来验证组件实例的属性是否符合要求:
|
|
MyTitle组件添加了title属性,PropTypes告诉React,这个title的属性的值必须为字符串,如果上述的data
变量不是字符串的话,浏览器就会报错。
此外getDefaultProps
方法可以用来设置组件属性的默认值:
|
|