From React documentation.

> 
> Conceptually, components are like JavaScript functions. They accept
>  arbitrary inputs (called “props”) and return React elements describing
>  what should appear on the screen. 
> 
> 
> 

Considering:

```
function Welcome(props) {   
  return <h1>Hello, {props.name}</h1>; 
}

```

or

```
class Welcome extends React.Component {
  render() {
    return <h1>Hello, {this.props.name}</h1>;
  }
}

```

Will give us the ability to do this:

```
<Welcome name="Luke" />;
<Welcome name="Leia" />;

```

to use as we wish in the DOM,

Hello, Luke
===========

Hello, Leia
===========

Now when people prescribe props shouldn't be changed, it would make sense the reason is in my thinking would be like the same as changing the values of attributes of an image tag?

HTML:

```
<img id="Executor" alt="Picture of Executor" src="/somepath/vaders-star-destroyer-executor.jpg"/>

```

JS:

Meanwhile in a Javascript file a long time ago in a galaxy far, far away...

```
var imageOfVadersStarDestroyer = document.getElementById('Executor');

imageOfVadersStarDestroyer.src = "/somepath/vaders-star-destroyer-avenger.jpg"

```

Because if we keeping changing an elements attribute values this can cause confusion and slower renderings?

So is the reason why the prescription is to never change props in React is because is the library is trying to make elements as predictable as possible?