React特征学习之Form格式示例详解

Form 样式

首先来看一个简单Form, 式样如下

import * as React from 'react';
const LoginForm = () => {
  return (
    
// Notice: 这里要用htmlFor,相当于id
); }; export { LoginForm };

屏幕显示如下

React特征学习之Form格式示例详解_第1张图片

若给以上Form加入用户输入, 可引入handleSubmit指令,并设置onSubmit事件触发,具体如下

(关于用户输入View => App单向数据流,可参考相关文章 - 学习React的特征(一) - 单向数据流 

import * as React from 'react';
const LoginForm = () => {
   // handleSubmit here
  const handleSubmit = (e) => {
    // preventDefault用于防止部分浏览器一些默认的不必要的行为
    event.preventDefault();
  };
  return (
    // onSubmit here
    
); }; export { LoginForm };

接着,进一步获取用户的输入, 可通过e.target.elements来抓取

import * as React from 'react';
const LoginForm = () => {
  const handleSubmit = (e) => {
    e.preventDefault();
    // 获取input elements 
    const email = e.target.elements.email.value;
    const password = e.target.elements.password.value;
    alert(email + ' ' + password);
  };
  return (
    
); }; export { LoginForm };

屏幕显示如下

React特征学习之Form格式示例详解_第2张图片

点击Submit, 显示如下

React特征学习之Form格式示例详解_第3张图片

React hook

或许用React hook更简洁优雅些 , 引入useState管理email, password状态

import * as React from 'react';
const LoginForm = () => {
  // Add hooks here
  const [email, setEmail] = React.useState('');
  const [password, setPassword] = React.useState('');
  const handleEmail = (e) => {
    setEmail(e.target.value);
  };
  const handlePassword = (e) => {
    setPassword(e.target.value);
  };
  const handleSubmit = (e) => {
    e.preventDefault();
    alert(email + ' ' + password);
  };
  return (
    
); }; export { LoginForm };

到这里一个React Form雏形基本完成,当然Form遇到的问题远不止这些, 后续会再进一步探讨Form数据管理,验证等方案

以上就是React特征学习之Form格式示例详解的详细内容,更多关于React特征Form格式的资料请关注脚本之家其它相关文章!

你可能感兴趣的:(React特征学习之Form格式示例详解)