react学习---day01--带方法的组件(计算加减)
1.开头都是一样的引入react,react-dom以及babel和固定的一些语法
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 6 <title>计算加减</title> 7 <!-- 该文件向外暴露(导出)了一个对象 React --> 8 <script src="https://unpkg.com/react@16/umd/react.development.js" crossorigin></script> 9 10 <!-- 该文件向外暴露了一个对象 React-Dom --> 11 <script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js" crossorigin></script> 12 <script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script> 13 </head> 14 <body> 15 <div id="app"></div> 16 </body> 17 </html>
2.开始往script标签里面填充
1 <script type="text/babel"> 2 class App extends React.Component{ 3 constructor() { 4 super() 5 this.state = { 6 num: 0 7 } 8 } 9 10 add() { 11 // 调用react的方法setSdate来修改state的值 12 this.setState({ 13 num: this.state.num +1 14 }) 15 } 16 17 cut() { 18 this.setState({ 19 num: this.state.num -1 20 }) 21 } 22 23 render() { 24 // add的this: 默认this是undefined; 25 // react底层使用的是call()方法来拷贝的,所以需要执行react方法的话需要加上bind(this)将this绑定 26 return ( 27 <div> 28 <button onClick={ this.cut.bind(this) }>-</button> 29 <span>{ this.state.num }</span> 30 <button onClick={ this.add.bind(this) }>+</button> 31 </div> 32 ) 33 } 34 } 35 36 ReactDOM.render(<App />, document.getElementById('app')) 37 </script>
需要注意的地方:
- 利用继承式组件时,定义的方法需要卸载构造函数外面的
- class里面的this其实就是react本身
- 修改state里面的数据的时候需要调用react的setState()方法
- setState接收一个对象,需要改变的变量为键,改变的方法为值
- 在React中,
组件的方法中的this默认是undefined,因为底层使用的拷贝方式是call(),所以在执行方法的时候为了将this指向react必须加上bind()方法

浙公网安备 33010602011771号