Javascript React JS-这个程序是如何工作的?

Javascript React JS-这个程序是如何工作的?,javascript,reactjs,react-native,architectural-patterns,Javascript,Reactjs,React Native,Architectural Patterns,我在Codeacademy上了React.JS课程。这个问题来自React.JS第二部分。 我正在学习编程模式,但我不明白这种模式是如何工作的 代码: Parent.js var React = require('react'); var ReactDOM = require('react-dom'); var Child = require('./Child'); var Parent = React.createClass({ getInitialState: function ()

我在Codeacademy上了React.JS课程。这个问题来自React.JS第二部分。 我正在学习编程模式,但我不明白这种模式是如何工作的

代码:

Parent.js
var React = require('react');
var ReactDOM = require('react-dom');
var Child = require('./Child');

var Parent = React.createClass({
  getInitialState: function () {
    return { name: 'Frarthur' };
  },

  changeName: function (newName) {
    this.setState({
      name: newName
    });
  },

  render: function () {
    return (
        <Child 
            name={this.state.name} 
        onChange={this.changeName}
        />
    );
  }
});

ReactDOM.render(
    <Parent />, 
    document.getElementById('app')
);
有人能一步一步地解释一下吗

  • 父组件将名称和onChange处理程序传递给其子组件,子组件可以通过其道具访问该子组件
  • 在子选择字段中包含一个处理程序,当您选择不同的名称时,将调用this.handlechange,它通过调用this.props.onChange调用父级的changeName函数
  • 父级中的changeName方法将状态设置为在子级选择字段中选择的不同名称
  • 然后,更改状态再次自动传递给子对象,作为道具传递给子对象
    • 在child.js中,handleChange函数与select选项绑定。我们有 e(事件)在handleChange中
    • 通过e.target,我们得到了目标元素,即选择下拉列表
    • e、 target.value从“选择”下拉列表中检索所选值
    • this.props.onChange(name):将值传递给父组件 和changeName在的帮助下更改名称的值 设置状态法

    “我不明白这个函数是如何工作的”您特别不明白什么?这个函数没有什么特别之处…这个handleChange函数是怎么工作的?这并不能回答我的问题。你想要什么样的解释?所有函数的工作原理都是一样的:当调用一个函数时,主体中的每个语句都会被执行。
    我在Codeacademy上了React.JS课程
    -你能再上一次吗?handleChange做什么?
    Child.js
    var React = require('react');
    
    var Child = React.createClass({
      handleChange: function (e) {
      var name = e.target.value;
      this.props.onChange(name);
    },
      render: function () {
        return (
          <div>
            <h1>
              Hey my name is {this.props.name}!
            </h1>
            <select id="great-names" onChange={this.handleChange}>
              <option value="Frarthur">
                Frarthur
              </option>
    
              <option value="Gromulus">
                Gromulus
              </option>
    
              <option value="Thinkpiece">
                Thinkpiece
              </option>
            </select>
          </div>
        );
      }
    });
    
    module.exports = Child;
    
    handleChange: function (e) {
      var name = e.target.value;
      this.props.onChange(name);
    
      handleChange: function (e) {
      var name = e.target.value;
      this.props.onChange(name);