条件的修改
function Greeting(props) {const isLoggedIn = props.isLoggedIn;if (isLoggedIn) {return <UserGreeting />;}return <GuestGreeting />;}ReactDOM.render(// 尝试修改 isLoggedIn={true}:<Greeting isLoggedIn={false} />,document.getElementById('example'));声明周期class Hello extends React.Component {constructor(props) {super(props);this.state = {opacity: 1.0};}componentDidMount() {this.timer = setInterval(function () {var opacity = this.state.opacity;opacity -= .05;if (opacity < 0.1) {opacity = 1.0;}this.setState({opacity: opacity});}.bind(this), 100);}render () {return (<div style={{opacity: this.state.opacity}}>Hello {this.props.name}</div>);}}ReactDOM.render(<Hello name="world"/>,document.body);React AJAXReact 组件的数据可以通过 componentDidMount 方法中的 Ajax 来获取,当从服务端获取数据时可以将数据存储在 state 中,再用 this.setState 方法重新渲染 UI 。
class UserGist extends React.Component {constructor(props) {super(props);this.state = {username: '', lastGistUrl: ''};}componentDidMount() {this.serverRequest = $.get(this.props.source, function (result) {var lastGist = result[0];this.setState({username: lastGist.owner.login,lastGistUrl: lastGist.html_url});}.bind(this));}componentWillUnmount() {this.serverRequest.abort();}render() {return (<div>{this.state.username} 用户最新的 Gist 共享地址:<a href=https://www.isolves.com/it/cxkf/kj/2021-11-30/{this.state.lastGistUrl}>{this.state.lastGistUrl}
<!DOCTYPE html><html><head><meta charset="UTF-8" /><title>React 实例</title><script src=https://www.isolves.com/it/cxkf/kj/2021-11-30/"https://cdn.staticfile.org/react/16.4.0/umd/react.development.js">