15.条件渲染.html 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  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>Document</title>
  7. <script src="./babel.min.js"></script>
  8. <script src="./react.development.js"></script>
  9. <script src="./react-dom.development.js"></script>
  10. </head>
  11. <body>
  12. <div id="root"></div>
  13. <!-- v-if React 没有
  14. 实现条件渲染:
  15. 三元判断
  16. if else
  17. switch case
  18. -->
  19. <script type="text/babel">
  20. class App extends React.Component {
  21. constructor() {
  22. super();
  23. this.state = {
  24. isLogin: true
  25. }
  26. this.handleClick = this.handleClick.bind(this)
  27. }
  28. // LoginMain = () => {
  29. // console.log("你好")
  30. // return this.state.isLogin ? (
  31. // <div>已登录</div>
  32. // ) : (
  33. // <div>未登录</div>
  34. // )
  35. // }
  36. // LoginMain = ()=> {
  37. // if(this.state.isLogin) {
  38. // return <div>已登录</div>
  39. // }else {
  40. // return <div>未登录</div>
  41. // }
  42. // }
  43. LoginMain = ()=> {
  44. switch(this.state.isLogin) {
  45. case true :
  46. return <div>已登录</div>
  47. case '111':
  48. return <div>111</div>
  49. default:
  50. return <div>未登录</div>
  51. }
  52. }
  53. handleClick() {
  54. this.setState({
  55. isLogin: !this.state.isLogin
  56. })
  57. }
  58. render() {
  59. // return (
  60. // <div>
  61. // <h1>条件渲染</h1>
  62. // {this.LoginMain()}
  63. // <button onClick={this.handleClick}>修改状态</button>
  64. // </div>
  65. // )
  66. return(
  67. this.state.isLogin ?
  68. (<div>已登录</div>) :
  69. ( <div>未登录</div>)
  70. )
  71. }
  72. }
  73. const element = <App/>
  74. const container = document.getElementById("root");
  75. const root = ReactDOM.createRoot(container)
  76. root.render(element);
  77. </script>
  78. </body>
  79. </html>