react--props

前端之家收集整理的这篇文章主要介绍了react--props前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

一、react的props用以父组件向子组件传递参数

如下例所示:
1、propTypes用于验证props的类型。
2、getDefaultProps用于设置props的默认值。
3、在父组件中通过属性的方式,传递给子组件<SubMessage messages={this.state.subMessages}/>,子组件中使用this.props.messages得到父组件传递的messages值。

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <Meta charset="UTF-8">
  5. <title>this</title>
  6. <script type="text/javascript" src="bower_components/react/react.js"></script>
  7. <script type="text/javascript" src="bower_components/react/JSXTransformer.js"></script>
  8. </head>
  9. <body>
  10.  
  11. <div id="app"></div>
  12.  
  13. <script type="text/jsx"> var MessageBox = React.createClass({ getInitialState: function(){ return { subMessages : [ '我会写代码','也会撒娇','老板叫我回去搬砖' ] }; },render: function(){ return ( <div> <SubMessage messages={this.state.subMessages}/> </div> ); } }); var SubMessage = React.createClass({ propTypes:{ messages: React.PropTypes.array.isrequired,},getDefaultProps: function(){ return { messages: ['默认的子消息'] }; },render: function(){ var subMsg = []; this.props.messages.forEach(function(val,index){ subMsg.push( <p>码农说:{val}</p> ); }) return ( <div>{subMsg}</div> ); } }); React.render( <MessageBox />,document.getElementById('app') ); </script>
  14. </body>
  15. </html>

二、this.props.children

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <Meta charset="UTF-8">
  5. <title>demo2</title>
  6. <script src="https://cdn.bootcss.com/react/15.4.2/react.min.js"></script>
  7. <script src="https://cdn.bootcss.com/react/15.4.2/react-dom.min.js"></script>
  8. <script src="https://cdn.bootcss.com/babel-standalone/6.22.1/babel.min.js"></script>
  9. </head>
  10. <body>
  11. <div id="app"></div>
  12.  
  13. <script type="text/jsx"> var Comp = React.createClass({ render: function(){ console.log( React.Children.map); var childComps = React.Children.map(this.props.children,function(child){ return <li>{child}</li>; }) return ( <ol> {childComps} </ol> ); } }); ReactDOM.render( <Comp> <span>hello</span> <span>nihao</span> </Comp>,document.getElementById('app') ); </script>
  14. </body>
  15. </html>

猜你在找的React相关文章