【React】react学习笔记14-Hooks

目的:

时隔数个月,为了跟随技术脚步,学习下React新特性,防止看别人代码懵逼。顺便完善下React快速学习专栏,略作笔记如下。

官网地址:

https://react.html.cn/docs/hooks-overview.html

什么是Hooks

Hooks是React v16.7.0-alpha 版本之后更新的一种 用于函数式编程的解决方案,可让您在不编写类的情况下使用 state(状态) 和其他 React 功能。

Demo环境:

zxdeMacBook-Pro:~ zx$ node -v
v12.16.3
zxdeMacBook-Pro:~ zx$ npm -v
6.14.4

实际Demo笔记以及注解代码,当前是在脚手架项目运行的:

import logo from './logo.svg';
import { useState,useEffect } from 'react';
import './App.css';

/**
 * hooks学习笔记
 * hooks官网地址:https://react.html.cn/docs/hooks-overview.html
 * hooks主要面向业务编程,传统的Class类指定了各个加载时机的节点函数,只要对应时机填代码就可以,代码比较清晰。
 * hooks对底层任务调度做了很多优化,类似于动画渲染等消耗资源的动作,优化提升比较明显。
 *
 * 常用的两个方法 "useState,useEffect " 基本能够满足大部分业务需求,简单整理,略作笔记。
 */

/**
 * 入口方法
 * @returns {*}
 * @constructor
 */
function App() {
    // useState方法,参数为定义变量初始值。返回一个数组对象A(解构)。A[0]就是定义变量的值,A[1]是一个函数,事例见-DEMO-1,DEMO-2
    const [count, setCount] = useState(1);
    const [todos, setTodos] = useState([{ text: 'Learn Hooks' }]);
    // 类似于 componentDidMount and componentDidUpdate,每次state或者props发生变更,都会重新触发加载。可以点击事件后查看打印。
    useEffect(() => {
        // Update the document title using the browser API
        console.log("Effect")
    });
    useEffect(() => {
        // Update the document title using the browser API
        console.log("Effect2")
        //这里一般进行一些资源的释放操作,如绑定函数的释放,一般很少用到return操作
        return () =>{
            console.log("Effect2 资源释放")
        }

    });

  return (
      <div>
          <p>DEMO-1:You clicked {count} times</p>
              <button onClick={() => setCount(count + 1)}>
                  Click me count add 1
              </button>
          <p>DEMO-2: {todos[0].text} </p>
              <button onClick={() => setTodos([{ text: 'Learn 2' }])}>
                  Click me update text todos value
              </button>


      </div>
  );
}

export default App;

顺便说下脚手架的搭建:

1、确认node版本

2、下载脚手架工具:

npm install -g create-react-app

3、创建新项目:

create-react-app greathooks

4、启动项目

cd greathooks
npm start

5、项目结构如下,替换上面的代码到App.js,浏览器进入 http://localhost:3000/ 测试Demo:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值