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‘)
);
  

原文地址:https://www.cnblogs.com/Lolita-web/p/10342183.html

时间: 2024-08-05 22:16:24

react 中文文档案例四 (登陆登出按钮)的相关文章

react 中文文档案例五 (循环列表)

function NumberList(props) { const numbers = props.numbers; const listItems = numbers.map((number) => <li key={number.toString()}> {number} </li> ); return ( <ul>{listItems}</ul> ); } const numbers = [1, 2, 3, 4, 5]; ReactDOM.re

react 中文文档案例六 (表单)

class Reservation extends React.Component { constructor(props) { super(props); this.state = { isGoing: true, numberOfGuests: 2, value: '' }; this.handleInputChange = this.handleInputChange.bind(this); this.handleSubmit = this.handleSubmit.bind(this);

react 中文文档案例七 (温度计)

const scaleNames = { c: 'Celsius', f: 'Fahrenheit' }; function toCelsius(fahrenheit) { return (fahrenheit - 32) * 5 / 9; } function toFahrenheit(celsius) { return (celsius * 9 / 5) + 32; } function tryConvert(temperature, convert) { const input = par

在Mint 16中当按下光驱的弹出按钮后桌面上的光驱图标没有自动消失的问题解决

/*********************************************************************  * Author  : Samson  * Date    : 07/29/2014  * Test platform:  *              Mint 16  *              GNU bash, version 4.2.45  * *************************************************

Django 编写博客网站的用户管理部分(采用自有的 django.contrib.auth) 2. 登陆登出和用户信息管理

续前Django 编写博客网站的用户管理部分(采用自有的 django.contrib.auth) 1. 注册部分 项目工具:Python 2.7.11  Django 1.10.2  Bootstrap 3.3.0   IDE:eclipse Pydev 1. 由于Django自带auth, 故仅需编写登录登出的url和template即可 urls常见上篇 template代码如下仅供参考: login 1 {% extends "account_base.html" %} 2 3

[转]ASP.NET Core 中文文档 第四章 MVC(4.3)过滤器

本文转自:http://www.cnblogs.com/dotNETCoreSG/p/aspnetcore-4_4_3-filters.html 原文:Filters 作者:Steve Smith 翻译:刘怡(AlexLEWIS) 校对:何镇汐 ASP.NET MVC 过滤器 可在执行管道的前后特定阶段执行代码.过滤器可以配置为全局有效.仅对控制器有效或是仅对 Action 有效. 查看或下载演示代码. 过滤器如何工作? 不同的过滤器类型会在执行管道的不同阶段运行,因此它们各自有一套适用场景.根

ASP.NET Core 中文文档 第四章 MVC(3.2)Razor 语法参考

原文:Razor Syntax Reference 作者:Taylor Mullen.Rick Anderson 翻译:刘怡(AlexLEWIS) 校对:何镇汐 什么是 Razor? Razor 是一种基于服务器端代码的可以转换为网页的标记语法.Razor 语法包括 Razor 标记.C# 和 HTML 组成.包含 Razor 的文件通常后缀名为 .cshtml . 渲染 HTML Razor 的默认语言是 HTML.从 Razor 渲染为 HTML 和直接一个 HTML 文件没啥区别,这种 R

php 用CAS实现SSO单点登陆及登出功能

php用CAS实现SSO单点登陆及登出功能 一..CAS服务器搭建 CAS服务器端下载地址:http://downloads.jasig.org/cas/ 解压cas-server-4.0.0-release.zip将modules目录下的cas-server-webapp-4.0.0.war改名称为cas.war复制到tomcat的webapps下,启动tomcat,访问:http://localhost:8080/cas/login 就可以看到登录界面了: cas服务端默认采用的是 用户名=

[Django]登陆界面以及用户登入登出权限

前言:简单的登陆界面展现,以及用户登陆登出,最后用户权限的问题 正文: 首先需要在settings.py设置ROOT_URLCONF,默认值为: ROOT_URLCONF  = 'www.urls'#用户请求django站点页面首先检查这个模块 这里的www.urls是我的工程www下urls.py文件 urls.py文件主要设置urlpatterns参数,设置如下: urlpatterns= [    url(r'^$', 'login.views.login_view', name='log