美文网首页
react-hook

react-hook

作者: gem_Y | 来源:发表于2020-10-14 22:36 被阅读0次

useState的用法

import React, { useState } from 'react';

function Example() {
  const [ count, setCount ] = useState(0)
  const [ age, setAge ] = useState(18)
  return ( 
    <div>
      <p>you click {count} times</p>
      <button onClick={() => {setCount(count+1);setAge(age+1)}}>click me</button>

  <p>年龄{age}</p>
    </div>
  );
}
 
export default Example;

useEffect 代替常用生命周期函数

  • 表示 componentDidMonut 和 componentDidUpdate
  • useEffect 是异步的,而生命周期函数是同步的
import React, { useState, useEffect } from 'react';

function Example() {
  const [ count, setCount ] = useState(0)

  // 表示 componentDidMonut 和 componentDidUpdate
  useEffect(() => {
    console.log(`useEffect=>You clicked ${count} times`)
  })
  return ( 
    <div>
      <p>you click {count} times</p>
      <button onClick={() => {setCount(count+1);setAge(age+1)}}>click me</button>
    </div>
  );
}
 
export default Example;

useEffect 实现componentWillUnmount

function Index() {
  useEffect(() => {
    console.log('来到了 useEffect-Index-component')
    return () => { // 解绑会执行的函数
      console.log('离开了 useEffect-Index-component')
    }
  },[]) // 数组为空表示 当组件销毁时才进行解绑
  return <h2>index-component</h2>
}

  // 表示 componentDidMonut 和 componentDidUpdate
  // useEffect 是异步的,而生命周期函数是同步的
  useEffect(() => {
    console.log(`useEffect=>You clicked ${count} times`)
    return () => {
      console.log('example执行解绑==============')
    }
  },[count]) // 当count 发生变化时,执行解绑

父子组件传值--useContext

import React, { useState, createContext, useContext } from 'react';

const CountContext = createContext()

function Counter() {
  const count = useContext(CountContext) // 得到count
return (<h2>{count}</h2>)
}

function Example5() {
  const [ count, setCount ] = useState(0)

  return ( 
    <div>
      <p>you click {count} times</p>
      <button onClick={() => {setCount(count+1)}}>click me</button>

      {/* ===把count 变量允许跨层级传递和使用 */}
      <CountContext.Provider value={count}>
        <Counter />
      </CountContext.Provider>
    </div>
  );
}
 export default Example5;

useReducer基本的使用

import React, { useReducer } from 'react';

function ReducerDemo() {
  const [ count, dispatch ] = useReducer((state,action) => {
    switch(action){
      case 'add':
        return state + 1
      case 'sub':
        return state - 1
      default:
        return state
    }
  },0)// 初始值

  return ( 
    <div>
      <p>现在的分数是 {count}</p>
      <button onClick={()=>{dispatch('add')}}>加法</button>
      <button onClick={()=>{dispatch('sub')}}>减法</button>
    </div>
  );
}
 
export default ReducerDemo;

相关文章

  • react-hook

    react-hook

  • react-hook

    useState的用法 useEffect 代替常用生命周期函数 表示 componentDidMonut 和 c...

  • React-Hook

    react hook必须在react16.8版本以上才能使用 1.useState 官网对useEffect的介绍...

  • react-hook

    参考:https://zhuanlan.zhihu.com/p/79127886 //对react hook其中的...

  • React-Hook 应用

    Hook 是 react 16.8 推出的新特性,具有如下优点:Hook 使你在无需修改组件结构的情况下复用状态逻...

  • React-Hook:useState

    1. 使用 因为react是函数式编程,useState函数接收一个初始化参数initialState,其返回值用...

  • React-Hook:useContext

    useReact的应用场景:在组件间共享状态 假设现在有两个组件,想要共享状态,可以使用React.createC...

  • React-Hook快速入门(一)

    一、React介绍 温馨提醒:想要获取更好的观看效果,可以点击查看本篇文章的原文档(React-Hook快速入门(...

  • antd table 编辑单元格

    技术背景: react-hook、antd优势方案:方案一 一。方案一(可多个单元格一起) 官方有例子[https...

  • 实用的react hook

    接触react-hook已经很久了,用了之后,发现真的很强大,记录一下最近使用的想法 useState 首先接触到...

网友评论

      本文标题:react-hook

      本文链接:https://www.haomeiwen.com/subject/xisgpktx.html