Reactjs React.js是否有类似于Vue.js的修改器;v型。懒惰“;
在Vue.js中: 默认情况下,v-model会在每个输入事件后将输入与数据同步(上述IME合成除外)。您可以添加延迟修改器,以在更改事件后进行同步:Reactjs React.js是否有类似于Vue.js的修改器;v型。懒惰“;,reactjs,vue.js,Reactjs,Vue.js,在Vue.js中: 默认情况下,v-model会在每个输入事件后将输入与数据同步(上述IME合成除外)。您可以添加延迟修改器,以在更改事件后进行同步: <!-- synced after "change" instead of "input" --> <input v-model.lazy="msg" > react是否具有类似的修改器或功能?在官方文档的哪个部分?以下内容来自Vue文档中的v-model: 尽管有点神奇,v-model本质上是糖的语法 更新用户输入
<!-- synced after "change" instead of "input" -->
<input v-model.lazy="msg" >
react是否具有类似的修改器或功能?在官方文档的哪个部分?以下内容来自Vue文档中的
v-model
:
尽管有点神奇,v-model本质上是糖的语法
更新用户输入事件的数据
在React中,您可以监听任何输入事件(onChange
,onClick
,等等),并触发更新React组件的状态的函数。如果要向下传递数据,可以将其作为props
传递给任何子级。通过这种方式,我们可以使用输入事件更新数据。有关更多信息,请参见和Vue.js中的将在DOM的更改事件上同步,而不是在输入上同步。DOM的更改事件发生在各种情况下,具体取决于所使用的表单元素。单击复选框或单选按钮将触发更改事件。输入文本框在失去焦点时将触发更改事件。不同的浏览器可能不会在相同的交互上触发更改事件
然而,React的onChange与DOM中的onChange工作方式不同:它更像DOM的onInput。与DOM的更改事件相反,当表单的任何输入元素发生更改时,React的onChange将触发
在React.js中,如果希望具有与Vue.js'v-model.lazy
类似的行为,则需要将事件处理程序绑定到不同的事件
关于您的示例,在Vue.js中,我们有:
<!-- synced after "change" instead of "input" -->
<input v-model.lazy="msg" >
在React.js中,我们不能使用onChange,因为onChange处理程序在每次按键时都会被触发,而不仅仅是在整个输入字段发生更改时。React.js的onChange不是“懒惰的”:-)相反,您可以使用它的事件:
类MyComponent扩展了React.Component{
建造师(道具){
超级(道具)
此.state={
消息:“”
}
}
车把(活动){
this.setState({msg:event.target.value});
}
render(){
返回
您的消息:{this.state.msg}
}
});
这是JSFIDLE上的示例。onChange(在React中)将完全执行VueJS中v-model的操作
Vue
ReactsetRecord(e.target.value)}/>
您可以在输入字段上使用onBlur事件,以实现与VueJS中的v-model.lazy类似的功能
Vue
ReactsetRecord(e.target.value)}/>
class MyComponent extends React.Component {
constructor(props) {
super(props)
this.state = {
msg: ''
}
}
handleBlur(event) {
this.setState({msg: event.target.value});
}
render() {
return <div>
<input type="text" onBlur={this.handleBlur.bind(this)}/>
<p>Your message: {this.state.msg}</p>
</div>
}
});