美文网首页
可控组件与不可控组件

可控组件与不可控组件

作者: a_pioneer | 来源:发表于2017-08-06 16:21 被阅读0次
  1. 核心区别:值与state是否对应。
  2. 可控组件的好处:
  • 复合React数据流
  • 数据在state中,修改跟使用更加方便,只需要对state进行修改,而不用对DOM操作
  1. 示例
  • 可控组件
      class ConstrolInput extends React.Component {
        constructor(props) {
          super(props);        
          this.state = {value: "Hello world"};

          this.handleSubmit = this.handleSubmit.bind(this);
          this.handleChange = this.handleChange.bind(this);
        }
        handleSubmit(event) {
          event.preventDefault(); 
          alert(this.state.value);
        }
        handleChange(event) {
          this.setSate({value: event.target.value});
        }
        render() {
          return (
            <form onSubmit={this.handleSubmit}>
              <input defaultValue={this.state.value} onChange={this.handleChange} />
              <button type="submit">Alert</button>
            </form>
          );
        }
      }
  • 不可控组件
      class UnconstrolInput extends React.Component {
        constructor(props) {
          super(props);
          this.handleSubmit = this.handleSubmit.bind(this);
        }

        handleSubmit(event) {
          event.preventDefault();
          var input = this.refs.input;
          alert(input.value);
        }

        render() {
          return (
            <form onSubmit={this.handleSubmit}>
              <input defaultValue="Hello world" ref="input" />
              <button type="submit">Alert</button>
            </form>
          );
        }
      }

  1. 不可控组件中间的数据的状态是未知的,只有在需要打印数据的时候才从DOM节点获取。而可控组件的数据变换会更新到state,也就是说状态的变换是一直保持同步的。
  2. 相对来说可控组件更值得推荐使用,虽然代码量上比不可控组件多些。

相关文章

  • 可控组件与不可控组件

    核心区别:值与state是否对应。 可控组件的好处: 复合React数据流 数据在state中,修改跟使用更加方便...

  • 表单与可控组件不可控组件

    在react中,不能像在Vue中那样双向数据绑定,来动态的响应数据的变化,所以在操作表单的时候需要我们手动操作。 ...

  • 受控组件

    受控组件 受控组件:组件的状态是可控制的 非受控组件:组件的状态是不可控制的 小练习:实现输入框输入,同步显示在下...

  • React 可控不可控组件

    拿到组件的节点 通过ref属性,然后调用React.findDOMNode("ref_name"); 可控组件如果...

  • ReactJS_14 表单的可控组件和不可控组件

    可控组件和不可控组件: 在React中的input标签是有些小坑的,input本身就有自己的缓存机制,然后Reac...

  • React 进阶之路 五 ( 父组件 与 子组件相互传值 )

    # 目标 如上图: 点击 父组件 的 显示/隐藏子组件 按钮可控制子组件的显示 点击 子组件 的 给父组件传值 ...

  • useReducer 实现todoList ts规范书写

    优化 展示列表和输入组件应该没有自己的逻辑,应该完全可控,方法都是父组件传入 typing/index.ts ac...

  • 可控与不可控

    可控是一种结果,也是一个过程。说明准备充分,万事周到。就算有预料之外之事,也有应对之策。 一旦事情到了不可控的地步...

  • 可控与不可控

    今天阅读《绩效跃迁地图》的时候读到合约可控还是不可控时感触颇深。 记得我刚开始做教练时,因为本身是咨询...

  • Google APP架构指北

    问题由于App随时可能被销毁,而且四大组件是短暂且生命周期不可控,在重建时App数据和状态不能依赖四大组件。 架构...

网友评论

      本文标题:可控组件与不可控组件

      本文链接:https://www.haomeiwen.com/subject/pozglxtx.html