React(二)

React.js在写组件的时候一般都需要继承React.js的Component,并且组件类必须要实现一个render方法,这个方法必须要返回一个JSX元素(必须要用一个外层的JSX元素包裹,不能返回多个并列的JSX元素),错误做法如下:

 

...
render(){
  return(
    <div>a</div>
    <div>b</div>
    )
}
//改为如下为正确的
...
render(){
  return(
    <div>
      <div>a</div>
      <div>b</div>
    </div>
    )
}

 

在JSX当作可以插入JavaScript的表达式,表达式结果会相应的渲染到页面上,表达式用{}包裹

render(){
  const word = 'good'
  return(
    <div>
      <h1> React {word}</h1>
    </div>
    )
}  //页面显示为 React good

表达式也可以用在标签属性上

render(){
  const className = 'h'
  return(
     <div className={className}>  //给div添加一个h的类名
        <h1>hello</h1>
     </div>
  )
}

直接使用class在React.js在元素上添加类名是不合法的,class是JavaScript的关键子

 

组件的组合:

 

class Title extends Component{
  render(){
    renturn(
      <h1>hello</h1>
    )
}
class Header extends Component{
  render(){
    return(
      <div>
        <Title/>
      </div>
    )
  }
}
reactDOM.render(
<Header/>,
document.getElementById('root')
)

 

直接在Header标签里面使用Title标签,就像是一个普通标签一样,但是实际上Title标签是我们自己创建的。也可以多次使用,这样可复用性就非常强。还需要注意的一点,自定义组件必须要用大写字母开头,普通的HTML标签都用小写字母开头

posted @ 2018-09-01 11:10  橘子味薄荷味  阅读(98)  评论(0编辑  收藏  举报