📜  反应JS |状态与道具

📅  最后修改于: 2022-05-13 01:56:19.114000             🧑  作者: Mango

反应JS |状态与道具

我们知道,React 组件是可以在构建 UI 时一次又一次地重用的构建块。在跳入 state 和 props 之间的主要区别之前,让我们看看 react 中的组件如何与 javascript 中的普通函数相关联
例子:

javascript
// simple component
class FakeComponent extends React.component{
 render(){
    return 
Hello World!
    } } // simple javascript function const FakeFunction = () => console.log('Hello World!');


javascript
// component
class FakeComponent extends React.component{
  state = {
      name : 'Mukul';
   }
  render(){
      return 
Hello {this.state.name}
   } } // simple js function const FakeFunction = () => {   let name = 'Mukul';   console.log(`Hey ${name}`); }


javascript
// component
class FakeComponent extends React.component{
 render(){
    return 
Hello {this.props.name}
    } } // passing the props


在上面的代码中,我们通过扩展React.component原生方法声明了一个简单的 React 组件,然后我们简单地将其中包含“Hello World”的 div 渲染为文本。在函数之后,我们有一个简单的javascript函数,其中包含一个简单的console.log,它在里面做同样的事情,打印'Hello World!'。
所以现在我们知道 React 组件的工作方式类似于普通的 javascript函数。我们来看看状态

状态

状态是存在于组件内部的变量,不能在组件外部访问和修改,只能在组件内部使用。与在普通 javascript.State 中无法在函数范围之外访问的函数内声明的变量非常相似。可以使用 this.setState 进行修改。状态可以是异步的。每当 this.setState 用于改变状态时,类都会重新渲染自己。让我们在帮助下看一个例子:
例子:

javascript

// component
class FakeComponent extends React.component{
  state = {
      name : 'Mukul';
   }
  render(){
      return 
Hello {this.state.name}
   } } // simple js function const FakeFunction = () => {   let name = 'Mukul';   console.log(`Hey ${name}`); }

在上面的代码中,我们只是在组件中声明了一个 name 属性并在渲染时使用它,类似于 javascript 中的普通函数的情况。还应注意,状态本质上是可变的,不应从子组件访问。

道具

我们知道 React 中的组件会在 UI 中一次又一次地使用,但我们通常不会使用相同的数据渲染相同的组件。有时我们需要更改组件内部的内容。在这些情况下,道具开始发挥作用,因为它们被传递给组件和用户。让我们看看它们是如何工作的:
例子:

javascript

// component
class FakeComponent extends React.component{
 render(){
    return 
Hello {this.props.name}
    } } // passing the props

一个简单的组件,然后我们将 props 作为属性传递,然后使用this.props在组件内部访问它们。所以 props 通过赋予组件以 props 的形式从父组件接收数据的能力,使组件可重用。它们是不可变的