Это скорее концептуальный вопрос.
TLDR: Поскольку я не публикую информацию о форме через HTTP на сервере, я также не использую проверку HTML5, есть ли что-нибудьЯ проигрываю, пока не использую <form>
и традиционный HTML submit
?
Я уже некоторое время использую React в проекте.
Это одностраничное приложение , и весь мой бэкэнд будет основан на облачных функциях Firebase.
Поскольку это одностраничное приложение, перенаправления отправки формы и обновления страницы не приветствуются.
Я думал, что любая форма, которую я построил до сих пор, я мог бы сделать то же самое без тега html <form>
.
На самом деле, все мои функции отправки компонентов формы имеют что-то вроде:
function onSubmit(event){
event.preventDefault(); // BASICALLY DON'T SUBMIT ANYTHING AND LET MY CODE HANDLE THIS
touchAllInputsValidateAndSubmit();
return;
}
Поскольку я ничего не отправляю на сервер (я буду вызывать облачные функции Firebase)и я не полагаюсь на проверку HTML5, действительно ли мне нужно использовать <form>
и <input type="submit"/>
или <button type="submit"/>
?
В основном, при условии, что мой код будет обрабатывать проверку (без использования проверки HTML5), любой компонент формы, который я хочу построить в React, я мог бы сделать:
function SomeFormComponent() {
const [formState,setFormState] = useState(); // STORE FORM INPUT VALUES IN STATE
function handlePseudoSubmit() {
callCloudFunction(formState); // ON SUBMIT, PASS THE FORMSTATE TO A CLOUD FUNCTION
}
return(
<React.Fragment>
// Clickable divs for checkboxes
// Regular inputs
// Can use contenteditable divs
// Whatever you can think of that could be part of a form
<button onClick={handlePseudoSubmit}>
Click to PseudoSubmit
</button>
</React.Fragment>
);
}
ВОПРОС
Поскольку я не публикую информацию о формечерез HTTP на сервер, ни я использую проверку HTML5, есть ли что-нибудьЯ теряю, не используя <form>
и традиционный HTML submit
?