6.列表渲染.html 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  7. <title>列表渲染</title>
  8. <script src="../../babel.min.js"></script>
  9. <script src="../../react.development.js"></script>
  10. <script src="../../react-dom.development.js"></script>
  11. </head>
  12. <body>
  13. <div id="root"></div>
  14. <script type="text/babel">
  15. function App() {
  16. return (
  17. <div className="app">
  18. <MyList />
  19. </div>
  20. );
  21. }
  22. class MyList extends React.Component {
  23. constructor() {
  24. super();
  25. this.state = {
  26. list: [1, 2, 3, 4],
  27. };
  28. }
  29. render() {
  30. let { list } = this.state;
  31. // 期望
  32. // let element = (
  33. // <ul>
  34. // <li>1</li>
  35. // <li>2</li>
  36. // <li>3</li>
  37. // <li>4</li>
  38. // </ul>
  39. // );
  40. // let element = (
  41. // <ul>
  42. // {/* 直接渲染数组 数据 会发生什么?*/}
  43. // <li>{list}</li>
  44. // {/* <li>{{ name: 'gg' }}</li> */}
  45. // </ul>
  46. // );
  47. // let ml = [<li>1</li>, <li>2</li>, <li>3</li>, <li>4</li>];
  48. // list = [1, 2,3,4]
  49. // 思考 list => ml ?
  50. let ml = list.map((item, index) => <li key={index}>{item}</li>);
  51. return <ul>{ml}</ul>;
  52. }
  53. }
  54. const root = ReactDOM.createRoot(document.querySelector('#root'));
  55. root.render(<App />);
  56. </script>
  57. </body>
  58. </html>