下面内容代码使用ES6语法react
1、组件的操做事件:npm
一、先要在组件类定义内定义操做事件的方法,如同event handler。若我须要监听在组件内的Button的点击事件onClick,首先定义监听方法,代码以下:浏览器
handleClick() { //TODO }
二、在contructor 函数,bind(this)。react-router
constructor(props) { super(props); this.handleClick = this.handleClick.bind(this); }
三、在render方法内,显式绑定事件架构
render() { return <div> <button onClick={this.handleClick}>click</button> </div>; }
通过以上操做即会触发监听事件方法dom
2、组件状态state函数
组件,我理解其实就是wpf的控件,那么state就是wpf中的依赖属性了,其功能如依赖属性其中的功能很相似,state的改变会改变组件的UI变化或者进行一些逻辑操做。网站
一、设置初始状态,即在contructor函数上设置组件初始state,this
constructor(props) { super(props); this.state = { liked: false, opacity: 1 }; }
二、在事件中能够利用setState()设置新的状态,如在handleclick事件改变state,以下:spa
handleClick() { this.setState({ liked: !this.state.liked }); }
state改变后促使组件从新执行render(),进而改变了UI。
3、路由
reactjs可使用单页面搭建整个网站或者APP,那么路由机制就十分须要,方便咱们来实际一个页面来构建多个页面和页面的架构。React-Router是一个十分实用的官方插件,提供进行导航等操做。
一、安装插件
npm install -S react-router
二、使用
使用react-router 就像使用通常的插件,以下:
import React from 'react'; import { render } from 'react-dom'; import { Router, Route,IndexRoute, Link, browserHistory, hashHistory } from 'react-router'; import App from './compoments/App'; import ABout from './compoments/ABout'; import Home from './compoments/Home'; render((<Router history={browserHistory}> <Route path="/" component={App} > <IndexRoute component={Home}/> <Route path="/home" component={Home} /> <Route path="/about" component={ABout} /> </Route> </Router>), document.getElementById("container"));
其中App,Home,About 都是其余文件定义的组件。
Router的history属性设置是设置Router将使用哪一种URL,例如使用hashHistory,路由的切换由URL的hash变化决定,即URL的#
部分发生变化,即上面访问about页面,URL路径将是localhost:8080/#/about;例如使用browserHistory,将会调用浏览器的URL,即访问about页面,URL路径将是localhost:8080/about。
更多Router参数设置能够去官网查看。