You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

42 lines
1.2 KiB

2 years ago
  1. import React from 'react'
  2. class TestComponent extends React.Component {
  3. // 1.定义组件状态
  4. state = {
  5. // 在这里可以定义各种属性,全都都是当前组件的状态
  6. name: 'Ken',
  7. }
  8. // 事件回调
  9. changeName = () => {
  10. // 3.修改 state 中的状态 name
  11. // 注意:不可以直接做赋值修改,必须通过一个方法 setState
  12. this.setState({
  13. name: 'King',
  14. })
  15. }
  16. // 2.使用状态
  17. render() {
  18. return (
  19. <div>
  20. TestComponent当前的名字为{this.state.name}
  21. <button onClick={this.changeName}>修改名字</button>
  22. </div>
  23. )
  24. }
  25. }
  26. function App() {
  27. return (
  28. <div>
  29. <TestComponent></TestComponent>
  30. </div>
  31. )
  32. }
  33. /*
  34. 1.编写组件其实就是编写原生 JS 类或者函数
  35. 2.定义状态必须通过 state 实例属性的方法提供一个对象名称是固定的就叫做 state
  36. 3. 修改state中的任何属性都不可以通知直接赋值必须走 setState 方法这个方法来自于继承得到
  37. 4.这里的 this 关键词很容易出现指向错误的问题上面的写法是最推荐和最规范的没有 this 指向问题
  38. */
  39. export default App