reactjs 将react.js转换为html/css

eh57zj3b  于 2023-06-29  发布在  React
关注(0)|答案(1)|浏览(170)

别误会。我需要这个做一个小实验,因为我不是前端开发人员,我不知道react.js,我需要帮助
我有主.jsx文件,我想将其更改为纯html\css\js,即。没有React。我有个问题如果在这段代码中,表单中的数据是通过const Main(如果我没有弄错的话)传输到服务器的,那么如何用html编写它呢?使用data-value属性?
主.jsx文件:

import React from "react";
import { useState } from "react";
import { Link } from "react-router-dom";

import styles from "../styles/Main.module.css";

const FIELDS = {
  NAME: "name",
  ROOM: "room",
};

const Main = () => {
  const { NAME, ROOM } = FIELDS;

  const [values, setValues] = useState({ [NAME]: "", [ROOM]: "" });

  const handleChange = ({ target: { value, name } }) => {
    setValues({ ...values, [name]: value });
  };

  const handleClick = (e) => {
    const isDisabled = Object.values(values).some((v) => !v);

    if (isDisabled) e.preventDefault();
  };

  return (
    <div className={styles.wrap}>
      <div className={styles.container}>
        <h1 className={styles.heading}>Join</h1>

        <form className={styles.form}>
          <div className={styles.group}>
            <input
              type="text"
              name="name"
              value={values[NAME]}
              placeholder="Username"
              className={styles.input}
              onChange={handleChange}
              autoComplete="off"
              required
            />
          </div>
          <div className={styles.group}>
            <input
              type="text"
              name="room"
              placeholder="Room"
              value={values[ROOM]}
              className={styles.input}
              onChange={handleChange}
              autoComplete="off"
              required
            />
          </div>

          <Link
            className={styles.group}
            onClick={handleClick}
            to={`/chat?name=${values[NAME]}&room=${values[ROOM]}`}
          >
            <button type="submit" className={styles.button}>
              Sign In
            </button>
          </Link>
        </form>
      </div>
    </div>
  );
};

export default Main;
34gzjxbg

34gzjxbg1#

如果你忘记React(一个单页面应用程序)是如何做到这一点的,最好回到基础知识,并在多页面网站中使用原生表单控件。
在最简单的形式中,您需要一个包含表单的页面(index.html)。form元素将具有action属性,该属性将路由到新页面(chat.html)。
当单击提交按钮时,表单重定向到chat.html,并将完成的输入值作为查询参数。
然后,您可以使用JavaScript分解当前URL(包括其查询参数)。

index.html
<form action="chat.html">
    <input type="text" name="name" value="" />
    <input type="text" name="room" value="" />
    <button type="submit">Submit</button>
</form>
chat.html
<script>

    // Create a new URL instance using the current URL string
    const url = new URL(window.location);

    // Get the query params
    const params = url.searchParams;

    // And then get each param by name
    console.log(params.get('name'));
    console.log(params.get('room'));
</script>

附加文件

相关问题