React与Vue实现Input去除首尾空格的对比

需求:要求所有的input框提交前自动去除首尾空格,全部都是空格就全部去除。 最简单的办法是在提交前对数据作处理,但是这样会带来很多的重复性工作,所以需要把这层逻辑抽取出 来。

一、React的做法

目前用的是
React
开发,而
React
并没有原生提供类似功能,使用的
Antd
也没有提供,需要我们 自己封装。 如果都是
Input
组件,我们直接封装一层,加上去除首尾空格的逻辑即可。 去除的最佳时机应该是输入框失去光标的时候,所以应该监听
blur
事件。
具体代码如下:

import React from 'react';
import{
Input
}from 'antd';
export default class InputTrim extends React.Component{handleBlur =(e)=>{//
去除头尾空格e.target.value = e.target.value.trim();const{
onChange
}= this.props;//
主动调
onChange,将数据同步给
FormonChange(e);}render(){return(<Input onBlur={this.handleBlur}{...this.props}/>)}
}

有时候并不一定都是
Input,也有可能是
Textarea,
这就要求我们把代码写得灵活一点,我们可以采 用
React
特有的高阶组件扩展我们的逻辑。

具体代码如下:

import React from 'react';
import{
Input
}from 'antd';
const withTrim =(WrappedComponent)=>class extends React.Component
{//
去除头尾空格handleBlur =(e)=>{e.target.value = e.target.value.trim();const{
onChange
}= this.props;onChange(e);}render(){return <WrappedComponent onBlur={this.handleBlur}{...this.props}/>;}}
const InputTrim = withTrim(Input);

二、Vue的做法

在用
Vue
开发的时候,官方提供了一个很方便方法,使用的
trim
装饰符。 具体代码如下:

 <input v-model.trim="bindValue" />


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部