React Hook 4年前

前端开发
2466
React Hook

用React Hook写一个简单的登录表单示例,两种方式:
第一种:

import React, { useState } from "react";
import ReactDOM from "react-dom";

function LoginForm() {
  const [username, setUsername] = useState('');
  const [password, setPassword] = useState('');

  const printValues = e => {
    e.preventDefault();
    console.log(username, password);
  };

  return (
    <form onSubmit={printValues}>
      <label>
        Username:
        <input
          value={username}
          onChange={event => setUsername(event.target.value)}
          name="username"
          type="text"
        />
      </label>
      <br />
      <label>
        Password:
        <input
          value={password}
          onChange={event => setPassword(event.target.value)}
          name="password"
          type="password"
        />
      </label>
      <br />
      <button>Submit</button>
    </form>
  );
}

ReactDOM.render(<LoginForm />, document.getElementById("container"));

第二种:

这里的setState函数只是一个更新函数的名字,所以随你心意,不一定叫setState

import React, { useState } from "react";
import ReactDOM from "react-dom";
function LoginForm() {
  const [form, setState] = useState({
    username: "",
    password: ""
  });

  const printValues = e => {
    e.preventDefault();
    console.log(form.username, form.password);
  };

  const updateField = e => {
    setState({
      ...form,
      [e.target.name]: e.target.value
    });
  };

  return (
    <form onSubmit={printValues}>
      <label>
        Username:
        <input value={form.username} name="username" onChange={updateField} />
      </label>
      <br />
      <label>
        Password:
        <input
          value={form.password}
          name="password"
          type="password"
          onChange={updateField}
        />
      </label>
      <br />
      <button>Submit</button>
    </form>
  );
}
ReactDOM.render(<LoginForm />, document.getElementById("container"));
ギルティクラウン
三十年河东,三十年河西
5
发布数
0
关注者
5333
累计阅读

热门教程文档

PHP
52小节
HTML
32小节
Kotlin
68小节
Vue
25小节
Java
12小节
广告