react单项数据流语法简单讲解概括

247 阅读2分钟

react单项数据流

什么是单向数据流? 说白了就是React中props的值只读不能修改

单线数据流在vue中的概念也是相类似的,为什么要做出这样的规定呢? 大概的意思就是:- React单项数据流是指数据在React应用中只能从父组件向子组件传递,而不能从子组件向父组件传递。这意味着,子组件无法直接修改从父组件传递下来的数据,而只能通过调用父组件传递的函数来请求数据的更改。这种单向数据流的设计使得React应用的数据流变得更加可控和可预测,同时也降低了组件之间的耦合度,使得组件之间的交互更加灵活。

单项数据流过程简易图例.jpg

数据从父组件流向子组件,数据更新发送到父组件,父组件会进行实际的更改。

数据位于父组件中,并向下传递给子组件,但是父组件和子组件都可以使用数据,然而:

  • 如果必须更新数据的话,则只有父组件应该进行更新;
  • 如果子组件需要更改数据,它将会更新的数据发送给父组件,由父组件完成更改,父组件执行更改后,将会更新的数据传递给子组件

属性绑定自上而下,事件绑定刚好相反

  • 单向从数据源到视图:插值表达式、属性、Attribute等等
  • 从视图到数据源的单向绑定:事件
  • 双向绑定:Form表单

项目简单案例展示:

以下是一个React单向数据流的代码案例:


import React, { useState } from "react"const App = () => {
  const [count, setCount] = useState(0);

  const incrementCount = () => {
    setCount(count + 1);
  };

  return (
    <div>
      <h1>Count: {count}</h1>
      <button onClick={incrementCount}>Increment</button>
    </div>
  );
};

export default App;


在这个代码中,我们使用了React`useState` hook来创建一个状态`count`,并将其初始化为0。我们还创建了一个`incrementCount`函数,该函数会在用户点击“Increment”按钮时被调用,并使用`setCount`来更新状态`count`的值。

在这个例子中,`count`状态只能通过`setCount`函数来更新,这意味着数据只能从父组件流向子组件,而不能反过来。这就是React的单向数据流模式。