react----两种使用基础方法(function+class)+react-----jsx语法中的循环展示

84 阅读1分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第11天,点击查看活动详情

一、react---入门页面结构搭建2--react的两种使用基础方法(function+class)、(json和js之间的相互转换)

在这里插入图片描述

json和js之间的相互转换

如果是在框架里用import引入,也可以,但是如果在页面中写个js,也是非常简单的方式 将json文件修改为js 文件后,在页面中用script引入,然后就可以直接使用使用起来相对非常简便 在这里插入图片描述

基础使用方法

先引入三个js文件,上一张有写怎么使用引入连接的步骤

<title>第一个react组件</title>
  </head>
  <body>
    <div id="app"></div>
    <script src="./libs/babel.min.js"></script>
    <!-- js文件引入的顺序,先引入react.js,再引入react-dom.js -->
    <script src="./libs/react.js"></script>
    <script src="./libs/react-dom.js"></script>
    <!-- <script src="./db.js"></script> -->
    <!-- script标签必须加上type="text/babel",因为我们需要解析jsx语法 -->
    <script type="text/babel">
      // var list = [];
      // console.log(pets);
      // 在react中组件需要使用大写开头
      function HelloWorld(props) {
        return <h1>你好,世界!,count值为:{props.count}</h1>;
      }

      // 使用了class类的继承
      class HelloMesage extends React.Component {
        // render表示渲染组件,所有的组件中都有这个方法
        render() {
          return <h5>我是一句话</h5>;
        }
      }
      // render 参数一 表示展示的组件内容,参数二表示位置
      // 使用{}来表示js 
      ReactDOM.render(
        <HelloMesage count={2} />,
        document.getElementById("app")
      );
    </script>
  </body>

二、react--jsx语法中的循环展示(className,js{}的用法、fetch调用接口循环)

使用fetch

fetch使用详情链接

<title>第一个循环数据</title>
    <style>
      .person {
        background-color: #999;
      }
    </style>
  </head>
  <body>
    <div id="app"></div>
    <script src="./libs/babel.min.js"></script>
    <script src="./libs/react.js"></script>
    <script src="./libs/react-dom.js"></script>
    <script type="text/babel">
      fetch("http://localhost:3009/api/v1/products")
        .then((res) => res.json())
        .then((res) => {
          function Products() {
            // 使用jsx循环生成数据的时候一定要使用map
            return (
              <ul>
                {res.products.map((p, i) => (
                  <li key={p._id}>{p.name}</li>
                ))}
              </ul>
            );
          }
          // render 参数一 表示展示的组件内容,参数二表示位置
          ReactDOM.render(<Products />, document.getElementById("app"));
        });
    </script>
  </body>

循环---组件套组件的使用

<title>第一个循环数据</title>
    <style>
      .person {
        background-color: #999;
      }
    </style>
  </head>
  <body>
    <div id="app"></div>

    <script src="./libs/react.js"></script>
    <script src="./libs/react-dom.js"></script>
    <script src="./libs/babel.min.js"></script>
    <script type="text/babel">
      // React中所有的组件都是一个function对象
      // 1️⃣组件写法:组件套组件
      function Person(props) {
        // 在react中设置样式的时候使用style
        // 在react中设置class样式名的时候需要写成className,因为class是js的保留字
        return (
          <li className="person" style={{ color: props.color }}>
            {props.name}
          </li>
        );
      }

      function People() {
        const renwu = ["Tom", "Jerry", "马冬梅"];
        // 使用jsx循环生成数据的时候一定要使用map
        return (
          <ul>
            {renwu.map((p, i) => (
              <Person key={i} color={i % 2 == 0 ? "red" : "blue"} name={p} />
            ))}
          </ul>
        );
      }
      // 2️⃣直接写法
      /* function People() {
        const renwu = ["Tom", "Jerry", "马冬梅"];
        return (
          <ul>
            {renwu.map((p, i) => (
              <li key={i}>{p}<li/>
            ))}
          </ul>
        );
      } */
      // render 参数一 表示展示的组件内容,参数二表示位置
      ReactDOM.render(<People />, document.getElementById("app"));
    </script>
  </body>

在这里插入图片描述 在这里插入图片描述