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

这篇博客对比了React和Vue中实现Input输入时自动去除首尾空格的方法。在React中,由于没有原生支持,作者通过封装组件并在blur事件中处理;而在Vue中,可以使用trim修饰符轻松实现这一功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求:要求所有的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,将数据同步给
Form

 
 onChange(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" />
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值