react 条件渲染

2019-04-19  本文已影响0人  樊小勇
<div id="app">

    </div>
    <script type="text/babel">
        class Demo extends React.Component{
            constructor(props){
                super(props);
            }
            render() {
                let {isLogin} = this.props;
                // 使用if else判断变量jsLogin的值来决定显示什么内容
                // 在react里css样式是两个括号,内部以属性的方式存在的,所以用,分开
                if(isLogin){
                    return(
                        <h1>欢迎回来<button style={{color:'blue'}}>退出登录</button></h1>
                    )
                }else{
                return(
                <h1>你还没登录<button style={{color:'blue'}}>立即登录</button></h1>
                )
                }
            }
        }

        ReactDOM.render(
            <Demo isLogin={false}/>,
            document.querySelector('#app')
        )

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

    </div>
    <script type="text/babel">
        // type="text/babel"
        class Demo extends React.Component{
            constructor(props){
                super(props);
            }
            render() {
                /**
                 * 通过变量isLogin来决定显示什么内容
                 * 使用三目运算符(内容较短的时候用三目运算符)
                 * 再长一点用if else
                 * 更长的内容封装成一个组件更合适
                */
               let {isLogin} = this.props
                // return(
                //     isLogin?<h1>欢迎回来</h1>:<h1>请登录</h1>
                //     // 就单个个体的时候这样,但是一般不这样
                // )   
                return(
                    <div>
                        {isLogin?<h1>欢迎回来</h1>:<h1>请登录</h1>}    
                    </div>
                )
            }
        }

        ReactDOM.render(
            <Demo isLogin={true}/>,
            document.querySelector('#app')
        )

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

    </div>
    <script type="text/babel">
        // type="text/babel"
        class Demo extends React.Component{
            constructor(props){
                super(props);
            }
            render() {
                /**
                 * 如果值为true就显示,为false不显示,相当于vue的v-show
                */
               let {show} = this.props
                return(
                    show &&
                    <p>
                        还记得那天一双旧皮鞋,拉着我走过一横一竖的街    
                    </p>
                )   
            }
        }

        ReactDOM.render(
            <Demo show={true}/>,
            document.querySelector('#app')
        )
    </script>
上一篇 下一篇

猜你喜欢

热点阅读