比如我們要實現的是這種效果:
用這種方法來寫,她只能寫死在哪,沒啥意思,所以我們定義一個數據,然后來測試下map方法對她遍歷出來的數據
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <script src="./js/react-with-addons.js"></script> <script src="./js/react-dom.js"></script> <script src="./js/browser.min.js"></script> </head> <body> <div id="demo"></div> <script type="text/babel"> console.log(React); //定義一個組建,名字第一個必須是大寫 var Firs = React.createClass({ mixins:[React.addons.LinkedStateMixin], /*組建的狀態*/ getInitialState:function(){ return{ mes:this.props.value } }, render:function(){ return( //必須要有一個大標簽包圍着才可以 <div> <h1>Hello {this.props.user}</h1> <input type="text" name="" valueLink={this.linkState('mes')} /> <input type="button" value={this.props.sendname} /> <p>{this.state.mes}</p> <ul> { this.props.listsArr.map(function(item,index){ return <li key={index}>{item}</li> }) } </ul> </div> ); }, changeHandle:function(ev){ //console.log(ev.target.value); this.setState({mes:ev.target.value}); } }); var obj = { user: '奪命雷公狗', sendname :'留言', values : '請輸入留言的信息', listsArr : [111,222,333,444,555,666,777,888,999] } ReactDOM.render(<Firs {...obj} />, /*這里其實也可以使用雙標簽的如:<Fir></Fir> */ document.getElementById('demo'), function(){ alert('頁面渲染完成'); }); </script> </body> </html>
效果如下所示: