cd ~

, with read , about 8min.

React初学者常见概念

<React.StrictMode>

React 中,使用脚手架工具创建项目以后,入口文件 main.jsx 中的严格模式是什么?

关于 Props 和 State

Props 来自于父组件,且 只能 被父组件更新。

State 是组件内部的状态,它可以被组件内部的逻辑更新。

特别注意点

关于这两点为什么呢?

p69

关于受控/非受控 (controlled/uncontrolled) 组件

(非)受控组件 的概念是什么?

通常受控/非受控组件是针对表单组件的。 例如某个 input 元素, dom 中 target.value 是自己维护了一份数据值的。 我们不需要去手动绑定值,它的值更新由 dom 元素自身完成。 这种情况下叫做非受控组件。简单的说:

非受控组件(uncontrolled components) 值的是组件的状态不由 React 的状态管理,而是直接由 DOM 管理。与之相对的是 受控组件(controlled component) ,它们的状态完全由 React 的状态(state) 和 来自父级的传递值(props)来控制。

受控组件和非受控组件的示例:

// 受控组件
import React, { useState } from "react";

function ControlledComponent() {
    const [inputValue, setInputValue] = useState("");

    const handleChange = (event) => {
        setInputValue(event.target.value);
    };

    return (
        <div>
            <input type="text" value={inputValue} onChange={handleChange} />
            <p>Input value: {inputValue}</p>
        </div>
    );
}

// 非受控组件
import React from "react";

function UncontrolledComponent() {
    return (
        <div>
            <input type="text" defaultValue="Hello World" />
            <p>Input value: (Managed by DOM)</p>
        </div>
    );
}
copy success

非受控组件存在哪些缺陷?

非受控组件的使用场景?

在文件上传的时候, file类型的input元素, 它始终是一个不受控制的组件,
因为它的值只能由用户设置,而不是以编程方式设置。

我们只需要通过 ref 获取到用户选中的文件即可: fileRef.current.files

怎么判断是否需要 State,以及怎么应用 State?

alt text

alt text

cd ~
GO BACK (Backspace)
BACK TO TOP (ESC)
COMMENTS (C)