【React 资料备份】React Hook

Hooks是React16.8一个新增项,是我们可以不用创建class组件就能使用状态和其他React特性

准备工作

  • 升级react、react-dom

    npm i react react-dom -S
    

状态钩子 State Hook

  • 创建HooksTest.js

    import React, { useState } from "react";
    
    export default function HooksTest() {
      // useState(initialState),接收初始状态,返回一个状态变量和其更新函数
      const [count, setCount] = useState(0);
      return (
        <div>
          <p>You clicked {count} times</p>
          <button onClick={() => setCount(count + 1)}>Click me</button>
        </div>
      );
    }
    

    更新函数类似setState,但它不会整合新旧状态

  • 声明多个状态变量

    export default function HooksTest() {
      const [age, setAge] = useState(42);
      const [fruit, setFruit] = useState('banana');
      const [todos, setTodos] = useState([{ text: 'Learn Hooks' }]);
      return (
        <div>
          <p>年龄 {age}</p>
          <p>水果 {fruit}</p>
          <ul>
              {todos.map(todo=><li key={todo.text}>{todo.text}</li>)}
          </ul>
        </div>
      );
    }
    

副作用钩子 Effect Hook

  • 更新HooksTest.js

    import React, { useState, useEffect } from "react";
    useEffect(() => {
    	// Update the document title using the browser API
        document.title = `您点击了 ${count} 次`;
    });
    
posted @ 2019-03-05 13:03  Horan  阅读(386)  评论(0编辑  收藏  举报