react怎么写问答_React 问答

本文主要介绍了React相关知识,包括父子组件、任意组件间的通信方法,如父子组件通信可通过props传数据,任意组件通信可用eventHub/eventBus或Redux;还讲解了React的创举虚拟DOM,以及useEffect、useState、useRef等钩子函数的使用方法,还有Fragment、React.forwardRef、cloneElement()等的用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

React 父子组件之间如何通信。

参考答案

父组件要传数据给子组件很简单,直接放在 props 里即可

子组件要传递数据给父组件就复杂点:

父组件将一个函数 fn 作为子组件的 props 传给子组件

子组件在恰当的时候调用这个 fn,并且把数据放在 fn 的参数里

React 任意组件之间如何通信。

参考答案

使用 eventHub/eventBus 来通信

一个组件监听某个事件,另一个组件触发相同的事件并传参,即可实现两个组件的通信

缺点是事件容易越来越多,不好控制代码的复杂度

使用 Redux

每次操作触发一个 action

action 会触发对应的 reducer

reducer 会用旧的 state 和 action 造出一个新的 state

使用 store.subscribe 监听 state 的变化,一旦 state 变化就重新 render(render 会做 DOM diff,确保只更新该更新的 DOM)

React 的创举

虚拟DOM

标签就是函数

函数就是对象

标签的属性就是函数的参数

什么时候用函数什么时候用class

组件非常的纯净 没有内部状态

如果组件需要记录自己的内部状态

子组件怎么通知外界 (父子通信)

你只能通过回调的形式 调用别人给你传的参数

父元素传一个函数给子元素

子元素在恰当的时候调用这个函数

调用的时候可以传参数

useEffect怎么使用

useEffect(()=>{

依赖项发生变化执行回调

},[依赖项,依赖项,依赖项]);

如果只想执行一次 第二个参数 []

useState怎么使用

变量 使用 useState 定义 和 改变

const[x,setX] = useState(初始值)

通过第二个参数 setX 来 改变 x 的值

使用setX 来改变x值时, setX所在的 函数会重新执行

useRef怎么使用

跨组件的状态管理 使用 useRef

const xxx = useRef(初始值)

xxx.current = ...

Fragment

reutrn(

)

React.forwardRef

接受渲染函数作为参数。React 将使用 props 和 ref 作为参数来调用此函数。此函数应返回 React 节点

const FancyButton = React.forwardRef((props, ref) => (

{props.children}

));

const ref = React.createRef();

Click me!;

会创建一个React组件,这个组件能够将其 参数ref 转发到其组件树下的另一个组件中

cloneElement()

React.cloneElement(

element,

[props],

[...children]

)

以 element 元素为样板克隆并返回新的 React 元素。

返回元素的 props 是将新的 props 与原始元素的 props 浅层合并后的结果。

新的子元素将取代现有的子元素,

而来自原始元素的 key 和 ref 将被保留。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值