react--props

Posted 秋天1014童话

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了react--props相关的知识,希望对你有一定的参考价值。

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

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

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>this</title>
    <script type="text/javascript" src="bower_components/react/react.js"></script>
    <script type="text/javascript" src="bower_components/react/JSXTransformer.js"></script>
</head>
<body>

    <div id="app"></div>

    <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>
</body>
</html>

二、this.props.children

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>demo2</title>
    <script src="https://cdn.bootcss.com/react/15.4.2/react.min.js"></script>
    <script src="https://cdn.bootcss.com/react/15.4.2/react-dom.min.js"></script>
    <script src="https://cdn.bootcss.com/babel-standalone/6.22.1/babel.min.js"></script>
</head>
<body>
    <div id="app"></div>

    <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>
</body>
</html>

以上是关于react--props的主要内容,如果未能解决你的问题,请参考以下文章

React Props 原理理解

React Props 原理理解

react篇章-React Props

react--props

React8 props的children校验默认值

React8 props的children校验默认值