黑马程序员技术交流社区

标题: [上海前端] react Hooks [打印本页]

作者: xiaofeifei112    时间: 2019-8-8 13:06
标题: [上海前端] react Hooks
本帖最后由 xiaofeifei112 于 2019-8-8 13:11 编辑

React Hooks




Hooks 的基本规则


让我们看一个例子来理解 hooks。 这是一个函数组件,它采用props并在UI上显示这些props。 在useState钩子的帮助下,我们将这个函数组件转换为有状态组件。 首先,我们在第5行定义状态,这相当于

[JavaScript] 纯文本查看 复制代码
constructor(props) {
super(props);
this.state = {
     name:'myname', age:10, address:'0000 one street'
}
}


useState返回两个项,一个是user,另一个是setUser函数。 user 是一个可以在没有 this关键字的情况下直接使用的对象,setUser是一个可以用来设置用户点击第21行按钮的状态的函数,该函数等效于以下内容。

[JavaScript] 纯文本查看 复制代码
this.setState({name:'name changed'})


[JavaScript] 纯文本查看 复制代码

import React, { useState } from "react";

export const UserDisplay = ({ name, address, age }) => {
    const [user, setUser] = useState({
        name: "myname",
        age: 10,
        address: "0000 onestreet"
    });

    return (
        <>
            <div>
                <div class="label">Name:</div>
                <div>{user.name}</div>
            </div>
            <div>
                <div class="label">Address:</div>
                <div>{user.address}</div>
            </div>
            <div>
                <div class="label">Age:</div>
                <div>{user.age}</div>
            </div>
            <button onClick={() => setUser({ name: "name changed" })}>
                Click me
            </button>
        </>
    );
};








欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2