1.react 组件建立react
首先要引入如下三个库:浏览器
react组件的建立有三种方式:babel
(1).dom
<script type="text/babel"> //类型必须为babel var Hello =React.createClass({ render:function(){ return <p>hello</p>; } }); ReactDOM.render( <Hello/>, document.getElementById('exp') ) </script>
首先建立react 组件类,在经过ReactDOM.render()将其渲染在id为exp的dom中函数
(2)使用函数定义了一个组件:this
function New(props,refs){ console.log(props,refs) return <p>New</p>; } ReactDOM.render( <New class="q"/>, document.getElementById('example') );
(3)使用 ES6 class 来定义一个组件:spa
class New extends React.Component { render() { return (
<p>New</p> ) } ReactDOM.render( <New/>, document.getElementById('ex') )
2.react State(状态)code
React 把组件当作是一个状态机(State Machines)。经过与用户的交互,实现不一样状态,而后渲染 UI,让用户界面和数据保持一致。component
React 里,只需更新组件的 state,而后根据新的 state 从新渲染用户界面(不要操做 DOM)。blog
如下实例建立一个名称扩展为 React.Component 的 ES6 类,在 render() 方法中使用 this.state 来修改当前的时间。
添加一个类构造函数来初始化状态 this.state,类组件应始终使用 props 调用基础构造函数。
class Clock extends React.Component { constructor(props) { super(props); this.state = {date: new Date()};//初始化state } render() { return ( <div> <h1>Hello, world!</h1> <h2>如今是 {this.state.date.toLocaleTimeString()}.</h2> </div> ); } } ReactDOM.render( <Clock />, document.getElementById('example') );
3.refs 使用
class New extends React.Component { render() { return ( <div ref>//在组件的某个节点标签上 添加 ref //便可在this.refs中看到该节点下的全部 节点,即数据 <p>1</p> <span>2</span> </div> ) } componentDidMount(){ console.log(this.refs.true.children[0].innerHTML)//经过refs获取带有 ref节点的 第一个子元素的内容 } } ReactDOM.render( <New/>, document.getElementById('ex') )