谈谈react组件中input

一切从需求出发,一切向功能看齐。咱们讨论一个东西的时候,首先要知道它是干什么? css

例如一个登陆界面UI:html

html和css写好了,放到了render函数中:react

需求是这样的:想要获取真实dom,在react中怎么实现呢?用什么要获取真实的dom,由于react在render中dom

渲染的是虚拟dom(virtual DOM)。函数

有个需求须要处理用户输入的值:这时候咱们就须要获取真实的dom,怎么作呢?this

给input加入一个ref属性,<input ref="Dom" value="111"/> ,经过this.ref.dom就能获取到这个input,this.ref.Dom.value就能获取input中的值。spa

react中的input事件:onChange:当value发生改变时,触发该事件。3d

 

 

需求输入的手机号为这种格式:134 7326 0471  ,思路是在onChage事件中处理逻辑:htm

当输入的长度为3,8的时候加入一个" "blog

输入的状况:

var val = this.refs.Phone.value;
if ((val.length == 3 || val.length == 8) && (val.length > this.state.phoneValue.length)) {
  val += " ";

}

还有多是ctrl+v过来的信息:

if ((val.length >= 11) && (val.indexOf(' ') == -1)) {

  val = val.split(' ').join('').slice(0, 3) + ' ' + val.split(' ').join('').slice(3, 7) + ' ' + val.split('   ').join('').slice(7)

}

控制一下输入的长度:

if (val.length > 11) {
  val = val.slice(0,11);
}

getInitialState() {

  return({

    phoneValue: '',

  })

}

this.setState({

   phoneValue: val

})

 这样咱们就写好了对输入框的的value处理。

 

关键词:ref  virtual DOM

相关文章
相关标签/搜索