别误会。我需要这个做一个小实验,因为我不是前端开发人员,我不知道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;
1条答案
按热度按时间34gzjxbg1#
如果你忘记React(一个单页面应用程序)是如何做到这一点的,最好回到基础知识,并在多页面网站中使用原生表单控件。
在最简单的形式中,您需要一个包含表单的页面(
index.html
)。form
元素将具有action
属性,该属性将路由到新页面(chat.html
)。当单击提交按钮时,表单重定向到
chat.html
,并将完成的输入值作为查询参数。然后,您可以使用JavaScript分解当前URL(包括其查询参数)。
index.html
chat.html
附加文件