react hooks 入门级使用

BitOrbit
• 阅读 221

react hooks 是react的一个新特性,需要react版本大于16.8及以上, hooks 其实就是简化react的写法,使用函数形式进行代码编写

### 一 , useState

//引入useState
import React, { useState } from 'react';
function Example() {
  const [count, setCount] = useState(0)
  return (
    <div>
      <p>you click {count} times</p>
      <button onClick={() => {
        setCount(count + 1)
      }}>click me!</button>
    </div>
  )
}

export default Example

多状态声明

import React, { useState } from 'react';
let showSex = true
function Example2() {
//useState 要进行顺序定义 不能中断定义 如(if判断是否定义该state)
  const [sex, setSex] = useState('男')
  const [age,setAge] = userState(18)
  const [work,setWork] = userState('前端程序员')
  return (
    <div>
      <p>性别: {sex}</p>
            <p>年龄: {age}</p>
          <p>工作: {work}</p>
    </div>
  )
}

export default Example2

二, useEffect (hooks中的生命周期)

// useEffect 写法
import React, { useState, useEffect } from "react"
function Example3() {
  const [count, setCount] = useState(0)
  useEffect(()=>{
    console.log(`useEffect=> you click ${count}`)
  })
  return (
    <div>
      <p>you click {count} times</p>
      <button onClick={() => {
        setCount(count + 1)
      }}>click me!</button>
    </div>
  )
}
export default Example3

useEffect相当于componentDidMount 和 componentDidUpdate生命周期函数,useEffect是异步的,不会立即更新

模拟组件销毁,useEffect 内提供一个return 函数,useEffect 同时也可以传入第二个参数(数组),数组内可以添加useState定义的值,意思是当值发生变化时,才会执行解绑(销毁),如果设置为空,表示当前组件销毁时才会执行

import React, { useState , useEffect} from 'react';

function Money() {
  const [count, setCount] = useState(0)
  useEffect(() => {
    console.log(`进入money也页面`)
    return ()=>{
      console.log('离开money页面')
    }
  },[])
  return (
    <div>
      <p>you click {count} times</p>
      <button onClick={() => {
        setCount(count + 1)
      }}>click me!</button>
    </div>
  )
}

export default Money

三, useContext

useContext 是为了解决hooks中父子传值问题

代码:

import React, { useState, createContext, useContext } from 'react';
const CountContext = createContext()
function ReactPage() {
  const [count, setCount] = useState(0)
  return (
    <div>
      <p>you click {count} times</p>
      <button onClick={() => {
        setCount(count + 1)
      }}>click me!</button>
      <CountContext.Provider value={count}>
        <Counter />
      </CountContext.Provider>
    </div>
  )
}
function Counter() {
  let count = useContext(CountContext)
  return (<h3>{count}</h3>)
}

export default ReactPage

父组件引入createContext 并且 定义一个CountContext

然后在CountContext 下引入子组件

子组件useContext 使用CountContext的值 实现父传子

------- 待更新 -------

点赞
收藏
评论区
推荐文章
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Wesley13 Wesley13
4年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
徐小夕 徐小夕
5年前
10分钟教你手写8个常用的自定义hooks
前言Hook是React16.8的新增特性。它可以让你在不编写class的情况下使用state以及其他的React特性。本文是一篇以实战为主的文章,主要讲解实际项目中如何使用hooks以及一些最佳实践,不会一步步再介绍一遍reacthooks的由来和基本使用,因为写hooks的文章很多,而且官网对于reacthooks的介绍也很详细
Souleigh ✨ Souleigh ✨
5年前
Hook 简介 – React
Hook简介_Hook_是React16.8的新增特性。它可以让你在不编写class的情况下使用state以及其他的React特性。importReact,{useState}from'react';functionExample(){//声明一个新的叫做“count”的sta
React Hooks源码深度解析
ReactHooks是React16.8引入的一个新特性,它允许函数组件中使用state和其他React特性,而不必使用类组件。Hooks是一个非常重要的概念,因为它们提供了更简单、更易于理解的React开发体验。本篇文章以ReactHooks源码为基,进行深度解析复盘其实现原理。
亚瑟 亚瑟
4年前
使用 Effect Hook – React
使用EffectHook_Hook_是React16.8的新增特性。它可以让你在不编写class的情况下使用state以及其他的React特性。_EffectHook_可以让你在函数组件中执行副作用操作importReact,{useState,useEffect}from'reac
亚瑟 亚瑟
4年前
使用 State Hook – React
使用StateHook_Hook_是React16.8的新增特性。它可以让你在不编写class的情况下使用state以及其他的React特性。中使用下面的例子介绍了Hook:importReact,{useState}from'react';functionExample(){//
可莉 可莉
4年前
10分钟教你手写8个常用的自定义hooks
https://juejin.im/post/5e57d0dfe51d4526ce6147f2前言Hook是React16.8的新增特性。它可以让你在不编写class的情况下使用state以及其他的React特性。本文是一篇以实战为主的文章,主要讲解实际项目中如何使用hooks以及一些最佳实践,不会一步步再介
Stella981 Stella981
4年前
React系列
React系列Mixin、HOC、RenderProps(上)React系列轻松学会Hooks(中)React系列自定义Hooks很简单(下)我们在第二篇文章中介绍了一些常用的hooks,接着我们继续来介绍剩下的hooks吧useReducer作为useState的替代方案。它接收一个形如(sta
Stella981 Stella981
4年前
React 新特性 Hooks 讲解及实例(三)
本文是React系列的第三篇React新特性讲解及实例(一)(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fsegmentfault.com%2Fa%2F1190000019414243)React新特性Hooks讲解及实例(二)(https://www.osc
Stella981 Stella981
4年前
React 新特性 React Hooks 的使用
关注前端技术专栏,回复“资源”免费领取全套视频教程正文什么是Hooks?Hooks是React16.8的新增特性。它可以让你在不编写class的情况下使用state以及其他的React特性。是一些可以让你在函数组件里“钩入”Reactstate及生命周期等特性的函数。Ho