zoukankan      html  css  js  c++  java
  • react hook 练手

    代码:App.js

    import React, { useState, useEffect, createContext, useContext, useRef } from 'react';
    import { Button } from 'antd-mobile';
    
    const Text = createContext(); // useContext 要和 createContext 一起使用
    
    export default function App() {
      const inputRef = useRef(); // 操作DOM
    
      const [ count, setCount ] = useState(0);
      const [ name, setName ] = useState('张三');
    
      useEffect(() => {
        console.log('---------------componentDidMount-------------', count);
        return () => {
          console.log('---------------componentWillUnmount-------------');
        }
      },[count]) // componentDidUpdate
    
      const handleClick = () => {
        inputRef.current.focus();
      }
    
      return (
        <div className="App">
          <Button onClick={() => setCount(count + 1)}>+1</Button>
          <div>{count}</div>
          <Button onClick={() => setCount(count - 1)}>-1</Button>
          <div>{name}</div>
          <Button onClick={() => setName('张三')}>张三</Button>
          <Button onClick={() => setName('李四')}>李四</Button>
          
          <Text.Provider value={{ count, setCount }}>
            <Item />
          </Text.Provider>
    
          <input type="text" ref={inputRef} />
          <br />
          <Button onClick={handleClick}>Click</Button>
        </div>
      );
    }
    
    function Item () {
      const { count, setCount } = useContext(Text);
      return (
        <div>
          Item_count:{count}
          <br />
          <Button onClick={() => setCount(count - 1)}>-1</Button>
        </div>
      );
    }

    .

  • 相关阅读:
    uva 11997
    【USACO 3.1.1】最短网络
    【USACO 2.4.5】分数化小数
    【USACO 2.4.4】回家
    【USACO 2.4.3】牛的旅行
    【USACO 2.4.2】穿越栅栏
    【USACO 2.4.1】两只塔姆沃斯牛
    【USACO 2.3.5】控制公司
    【USACO 2.3.4】货币系统
    【USACO 2.3.3】零数列
  • 原文地址:https://www.cnblogs.com/crazycode2/p/12194772.html
Copyright © 2011-2022 走看看