记录 目录结构 效果 点击上面3个按钮可以实现无刷新切换,列表内容可以通过ajax加载。 Clock.js文件 import React from "react"; export default class Clock extends React.Component { constructor() { super(); this.state = {date: new Date()} } render() { return ( <div> <h1>当前时间: </h1> <h2>{this.state.date.toLocaleTimeString()}</h2> </div> ); } //申明一个tick函数,设置时间,注意,这里是使用匿名函数赋值给tick的,这样申明不会造成this错误,但是这样写必须给babel添加transform-class-properties扩展 //另外也推荐React类中的成员函数都通过这种方式申明 tick = () => { this.setState({date: new Date()}); } //组件显示时调用 componentDidMount() { this.interval = setInterval(this.tick, 1000); //申明定时器 } //组件消失时调用 componentWillUnmount() { clearInterval(this.interval); } } Header.js文件 import React from "react" import {Link} from "react-router-dom" export default class Header extends React.Component{ render(){ return( <div> <h1>location:</h1> <Link className="btn btn-default" to="/welcome">welcome</Link> <Link className="btn btn-default" to="/clock">clock</Link> <Link className="btn btn-default" to="/list">list</Link> </div> ); } } Layout.js文件 import React from "react" import {Switch,Route} from "react-router-dom" import Clock from "./Clock" import Welcome from "./Welcome" import Header from "./Header"; import List from "./List" export default class Layout extends React.Component{ render(){ return ( <div> <Header/> <Switch> <Switch> <Route component={Clock} path={"/clock"}/> <Route component={Welcome} path={"/welcome"}/> <Route component={List} path={"/list"}/> </Switch> </Switch> </div> ); } } List.js文件 import React from "react" export default class List extends React.Component { constructor(props) { super(props); this.state = { array: [1, 2, 3, 4, 5, 6], students: [ { "id": 1, "mobile": "13890199242", "password": "e10adc3949ba59abbe56e057f20f883e", "name": "无名氏", "photoImageId": 2, "genderId": 2, "birthday": "2017-07-20T16:00:00.000+0000", "email": "xjiangwei@xjiangwei.cn", "provinceId": 2, "cityId": 2, "signature": "2", "isLocked": 1, "registerDate": "2017-07-24T10:40:20.000+0000", "lastUpdateDate": "2017-07-24T10:40:23.000+0000" }, { "id": 22, "mobile": "18577332907", "password": "e10adc3949ba59abbe56e057f20f883e", "name": "小明", "photoImageId": 1, "genderId": 1, "birthday": "2017-07-21T00:00:00.000+0000", "email": "xjiangwei@xjiangwei.cn", "provinceId": 1, "cityId": 1, "signature": null, "isLocked": 0, "registerDate": null, "lastUpdateDate": null }, { "id": 61, "mobile": "13890199241", "password": "ff98ea5c27046203fd3bc8ffbf52e0ef", "name": "新用户", "photoImageId": 0, "genderId": 0, "birthday": null, "email": null, "provinceId": 0, "cityId": 0, "signature": null, "isLocked": 0, "registerDate": null, "lastUpdateDate": null }, { "id": 62, "mobile": "13890199243", "password": "ff98ea5c27046203fd3bc8ffbf52e0ef", "name": "新用户", "photoImageId": 0, "genderId": 0, "birthday": null, "email": null, "provinceId": 0, "cityId": 0, "signature": null, "isLocked": 0, "registerDate": null, "lastUpdateDate": null }, { "id": 63, "mobile": "13890199245", "password": "ff98ea5c27046203fd3bc8ffbf52e0ef", "name": "新用户", "photoImageId": 0, "genderId": 0, "birthday": null, "email": null, "provinceId": 0, "cityId": 0, "signature": null, "isLocked": 0, "registerDate": null, "lastUpdateDate": null }, { "id": 64, "mobile": "13890199250", "password": "ff98ea5c27046203fd3bc8ffbf52e0ef", "name": "新用户", "photoImageId": 0, "genderId": 0, "birthday": null, "email": null, "provinceId": 0, "cityId": 0, "signature": null, "isLocked": 0, "registerDate": "2017-07-25T12:15:40.000+0000", "lastUpdateDate": null } ] }; } render() { return ( <div> {/*<ul>*/} {/*{this.state.array.map((value) => <li key={value}>{value}</li>)}*/} {/*</ul>*/} <table key="table" className="table table-bordered" > <tbody> <tr key="title"><td key="title-id">id</td><td key="title-name">name</td><td key="title-gender">gender</td></tr> {this.state.students.map((val)=> <tr key={val.id+10}><td key={val.id}>{val.id}</td><td key={val.name}>{val.name}</td><td key={val.genderId}>{val.genderId}</td></tr>)} </tbody> </table> </div> ); } } Welcome.js文件 import React from "react" export default class Welcome extends React.Component{ render(){ return <h1>Hello World! </h1>; } } Form.js文件 /** * Created by jiangwei on 2017/7/29. */ import React from "react" export default class Form extends React.Component{ constructor(){ super(); this.state={text:"",pick:"1"}; } Click=()=>{ console.log(this.state); } render(){ return( <form> <table className="table table-bordered"> <tbody> {/*双向绑定输入框中的值*/} <tr><td>输入框:</td><td><input type="text" value={this.state.text} onChange={(e)=>{this.setState({text:e.target.value});}} className="input-sm" /></td></tr> <tr><td> 单选框:</td><td><select onChange={(e)=>{this.setState({pick:e.target.value});}} className="input-sm" value={this.state.pick}><option value="1">1</option><option value="2">2</option><option value="3">3</option><option value="4">4</option><option value="5">5</option></select><br/></td></tr> <tr><td>确定键:</td><td><button onClick={this.Click} className="btn btn-default">click!</button></td></tr> </tbody> </table> </form> ); } } index.js文件 import React from "react"; import ReactDom from "react-dom"; import { Switch,HashRouter,Route } from "react-router-dom" import Layout from "./components/Layout" ReactDom.render( <HashRouter> <Layout/> </HashRouter> , document.getElementById("root")); 这个项目本身很简单,没有什么意义,但是包括了React的基本使用方法,所以记录下来,方便以后使用React的时候查询 Previous React开发时钟 Next Ubuntu更新内核后无线网卡无法使用 CATALOG FEATURED TAGS Windows Linux MySQL JavaScript Python Caffe Android java php linux React 计算机网络 收藏 Docker Nginx PHP FRIENDS My Github