1. 程式人生 > >05、react之 條件判斷的四種寫法

05、react之 條件判斷的四種寫法

條件判斷的四種寫法
        1、三元表示式?:

2、使用變數,通過函式使用條件判斷語句,返回一個字串

3、直接在{}中呼叫函式

4、使用比較運算子&&   ||  !

說明:通過這種方式儘管onOff的值在點選的時候有被改變,但是樣式出任然不會有改變,樣式出不會被重新渲染,必須運用各個元件的state狀態,當這個state狀態改變的時候,元件才會去重新渲染

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>條件判斷的四種寫法</title>
    <style>
        .box1 {
            width: 100px;
            height: 100px;
            background: red;
            color: #fff;
        }
        .box2 {
            width: 150px;
            height: 150px;
            background: #000;
            color: #fff;
        }
    </style>
    <script src="js/react.min.js"></script>
    <script src="js/react-dom.min.js"></script>
    <script src="js/browser.js"></script>
</head>
<body>
    <script type="text/babel">
        var onOff = true;
        var Demo = React.createClass({
            // 自定義一個點選事件
            handleClick:function() {
               onOff = !onOff;
               console.log(onOff);
            },
            render:function(){
                return <div className={onOff?"box2":"box1"} onClick={this.handleClick}>我是一個盒子</div>
            }
        })
        ReactDOM.render(<Demo/>,document.body)
    </script>
</body>
</html>
使用state
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>條件判斷的四種寫法</title>
    <style>
        .box1 {
            width: 100px;
            height: 100px;
            background: red;
            color: #fff;
        }
        .box2 {
            width: 150px;
            height: 150px;
            background: #000;
            color: #fff;
        }
    </style>
    <script src="js/react.min.js"></script>
    <script src="js/react-dom.min.js"></script>
    <script src="js/browser.js"></script>
</head>
<body>
    <script type="text/babel">
        var Demo = React.createClass({
            // 設定初始的狀態
            getInitialState:function(){
                return {
                    onOff: true
                }
            },
            // 自定義一個點選事件
            handleClick:function() {
               this.setState({
                    onOff:!this.state.onOff
                })
            },
            render:function(){
                return <div className={this.state.onOff?"box2":"box1"} onClick={this.handleClick}>我是一個盒子</div>
            }
        })
        ReactDOM.render(<Demo/>,document.body)
    </script>
</body>
</html>