17.条件渲染.html 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  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. <script type="text/babel">
  14. let root = ReactDOM.createRoot(document.getElementById("root"));
  15. function App() {
  16. return (
  17. <Count />
  18. )
  19. }
  20. // if/else/else-if switch-case 三元判断
  21. /**
  22. * 登录逻辑
  23. * 用户 => 首页
  24. * 非用户 => 登录页
  25. *
  26. * 本地存储
  27. */
  28. class Count extends React.Component {
  29. constructor() {
  30. super();
  31. this.state = {
  32. token: JSON.parse(localStorage.getItem("token")),
  33. msg: {
  34. user: '图图',
  35. age: 3
  36. }
  37. }
  38. }
  39. render() {
  40. let { token, msg } = this.state;
  41. return token ?
  42. <div>我叫{msg.user},今年{msg.age}</div>
  43. :
  44. <div>
  45. <h1>请登录</h1>
  46. </div>
  47. }
  48. }
  49. // if (token) {
  50. // return <div>我叫{msg.user},今年{msg.age}</div>
  51. // } else {
  52. // return (
  53. // <div>
  54. // <h1>请登录</h1>
  55. // </div>
  56. // )
  57. // }
  58. root.render(<App />);
  59. </script>
  60. </body>
  61. </html>