zoukankan      html  css  js  c++  java
  • react 中文文档案例四 (登陆登出按钮)

    import React from 'react';
    import ReactDOM from 'react-dom';
    
    class LoginControl extends React.Component {
        constructor(props) {
            super(props);
            this.handleLoginClick = this.handleLoginClick.bind(this);
            this.handleLogoutClick = this.handleLogoutClick.bind(this);
            this.state = {isLoggedIn: false};
        }
      
        handleLoginClick() {
            this.setState({isLoggedIn: true});
        }
      
        handleLogoutClick() {
            this.setState({isLoggedIn: false});
        }
      
        render() {
            const isLoggedIn = this.state.isLoggedIn;
            let button;
        
            if (isLoggedIn) {
                button = <LogoutButton onClick={this.handleLogoutClick} />;
            } else {
                button = <LoginButton onClick={this.handleLoginClick} />;
            }
      
            return (
                <div>
                    <Greeting isLoggedIn={isLoggedIn} />
                    {button}
                </div>
            );
        }
    }
      
    function UserGreeting(props) {
        return <h1>Welcome back!</h1>;
    }
      
    function GuestGreeting(props) {
        return <h1>Please sign up.</h1>;
    }
      
    function Greeting(props) {
        const isLoggedIn = props.isLoggedIn;
        if (isLoggedIn) {
          return <UserGreeting />;
        }
        return <GuestGreeting />;
    }
      
    function LoginButton(props) {
        return (
          <button onClick={props.onClick}>
            Login
          </button>
        );
    }
      
    function LogoutButton(props) {
        return (
          <button onClick={props.onClick}>
            Logout
          </button>
        );
    }
      
    ReactDOM.render(
        <LoginControl />,
        document.getElementById('root')
    );
      
    import React from 'react';
    import ReactDOM from 'react-dom';
    
    function WarningBanner(props) {
        if (!props.warn) {
          return null;
        }
      
        return (
            <div className="warning">
                Warning!
            </div>
        );
    }
      
    class Page extends React.Component {
        constructor(props) {
          super(props);
          this.state = {showWarning: true}
          this.handleToggleClick = this.handleToggleClick.bind(this);
        }
      
        handleToggleClick() {
          this.setState(prevState => ({
            showWarning: !prevState.showWarning
          }));
        }
        
        render() {
          return (
            <div>
              <WarningBanner warn={this.state.showWarning} />
              <button onClick={this.handleToggleClick}>
                {this.state.showWarning ? 'Hide' : 'Show'}
              </button>
            </div>
          );
        }
      }
      
    ReactDOM.render(
        <Page />,
        document.getElementById('root')
    );
      
  • 相关阅读:
    不变数组 NSArray
    【英雄会】微软题目:几个bing
    单例模式 Singleton
    【实战经验】64位Win7安装+32位Oracle + PL/SQL 解决方法
    如何解决SQL Server数据库查询速度慢
    Linq 学习(1) Group & Join--网摘
    UMeng 友盟的用户数,启动数 等
    浏览器userAgent大全
    VBA 将 ANSI 转换为 UTF-8文件
    C# 中控件 WebBrowser 对 frameset/ iframe 操作和内容获取
  • 原文地址:https://www.cnblogs.com/Lolita-web/p/10342183.html
Copyright © 2011-2022 走看看