react实现手机号的数据同步

这次给大家带来react实现手机号的数据同步,react实现手机号的数据同步的注意事项有哪些,下面就是实战案例,一起来看一下。

本文介绍了使用react实现手机号的数据同步显示功能的示例代码,分享给大家,具体如下:

要求如下

输入框输入内容数据长度大于0,展示出预览信息

光标离开关闭预览信息

预览信息每隔4位插入一个特殊字符_,输入内容不变

限制长度为13位

只允许输入数字(0-9)

// Zinput.jsimport React, { Component} from 'react';import './Zinput.css'// NOTE: 获取焦点事件 原生onFocus 即可// NOTE: 离开焦点事件 原生onBlur即可// NOTE: 输入框数据过滤 直接在change方法里进行过滤// NOTE: 条件处理 通过不同条件返回不同节点做条件处理class Zinput extends Component { constructor(props) {  super(props);  this.state = {   value: '',   showBig: false,  };  this.handleChange = this.handleChange.bind(this);  this.inputOnFocus = this.inputOnFocus.bind(this);  this.inputOnBlur = this.inputOnBlur.bind(this); } inputOnFocus() {  if (this.state.value.length > 0) {   this.setState({    showBig: true   })  } } inputOnBlur() {  this.setState({   showBig: false  })  if(this.props.chanegNumber){   this.props.chanegNumber(this.state.value)  } } handleChange(event) {  let val = event.target.value.substr(0, 13)   .replace(/[^d]/g, '')  event.target.value = val  this.setState({   value: val,   showBig: true,  }); } /**  * 根据字符串没隔len位插入一个下滑杠,返回处理后的字符串  * @method  getStr  * @author 朱阳星  * @datetime 2018-04-02T09:57:58+080  * @email  zhuyangxing@foxmail.com  * @param  {String} str 待处理字符串  * @param  {Number} len 每隔位数插入下滑杠  * @return  {String} 处理后的字符串  */ getStr(str, len) {  let lenth = str.length  let len1 = len - 1  let newStr = ''  for (var i = 0; i  0) {    newStr += str.charAt(i) + '_'   } else {    newStr += str.charAt(i)   }  }  if (newStr.length % (len + 1) === 0) {   // 解决最后一位为补充项问题   newStr = newStr.substr(0, newStr.length - 1)  }  return newStr } render() {  // NOTE return 需要用圆括号包住并处理  // NOTE 条件语句里没有节点也要用空字符串进行处理 否则sonalint会报错,页面也会报错  const showBig = this.state.showBig ? (   

{ this.getStr(this.state.value,4) }

) : '' return (

{showBig}

) }}export default Zinput; // Don't forget to use export default!

登录后复制

.zInput{  position: absolute;  top:80px;  left:40px;  }.input { position: absolute; top: 0; left: 0;}.big-show {  position: relative;  top: -40px;  font-size: 36px;  line-height: 40px;  background-color: red;}

登录后复制

功能虽然实现,但是肯定是作为某个节点的某个子组件使用的,父组件调用方法有两种

1.使用refs直接获取子组件state的值

constructor(props) { super(props); this.handerClick2 = this.handerClick2.bind(this);}handerClick2(){ // NOTE 父组件通过refs获取子组件的state  console.log("使用ref获取子组件的值",this.refs.zinput.state.value)}render() { return (  

);}

登录后复制

2.每次子组件焦点离开时调用父组件传过来的方法,修改父组件state值

constructor(props) { super(props); this.state = {  phoneNumber: '', }; this.handerClick = this.handerClick.bind(this); this.changePhoneNumber = this.changePhoneNumber.bind(this);}changePhoneNumber(number){ this.setState({   phoneNumber: number, })}handerClick(){ // NOTE 根据react的思想是在子组件处理完某件事的时候调用父组件的方法修改父组件的state值 console.log("使用state获取值",this.state.phoneNumber)}render() { return (  

);}

登录后复制

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

推荐阅读:

Vue filter的使用详解

vue-router懒加载时添加loading提示提升用户体验

以上就是react实现手机号的数据同步的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2774662.html

(0)
上一篇 2025年3月8日 14:11:47
下一篇 2025年2月24日 04:57:44

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • react怎样实现页面代码分割和按需加载

    这次给大家带来react怎样实现页面代码分割和按需加载,react实现页面代码分割和按需加载的注意事项有哪些,下面就是实战案例,一起来看一下。 虽然一直有做 react 相关的优化,按需加载、dll 分离、服务端渲染,但是从来没有从路由代码…

    2025年3月8日
    200
  • 代码详解React Js 微信分享封装

    本篇文章给大家分享的内容是代码详解React Js 微信分享封装,有着一定的参考价值,有需要的朋友可以参考一下 话不多说,直接上源代码: /** * Created by wuyakun on 2017/5/23. */import Fet…

    编程技术 2025年3月8日
    200
  • python操作excel读写数据

    这次给大家带来python操作excel读写数据,python操作excel读写数据的注意事项有哪些,下面就是实战案例,一起来看一下。 本文实例为大家分享了python操作EXCEL的实例源码,供大家参考,具体内容如下 读EXCEL的操作:…

    编程技术 2025年3月8日
    200
  • JS的数据类型

    本篇文章介绍的内容是js的数据类型,在这里分享给大家,有需要的朋友可以参考一下 基础数据类型 JavaScript数据类型有2大分类:一是“基本数据类型”,二是“特殊数据类型”。 其中,基本数据类型包括以下3种: (1)数字型(Number…

    编程技术 2025年3月8日
    200
  • React如何避免重渲染_javascript技巧

    这篇文章主要介绍了react如何避免重渲染,现在分享给大家,也可以给有需要的朋友做个参考 组件的重新渲染 我们可以在 React 组件中的 props 和 state 存放任何类型的数据,通过改变 props 和 state,去控制整个组件…

    2025年3月8日 编程技术
    200
  • Pastate.js 响应式 react 框架之表单渲染与操作

    本篇文章给大家分享的内容是关于pastate.js 响应式 react 框架之表单渲染与操作  ,有着一定的参考价值,有需要的朋友可以参考一下 这是 Pastate.js 响应式 react state 管理框架系列教程的第四章,欢迎关注,…

    2025年3月8日 编程技术
    200
  • Pastate.js 响应式 react 框架之 模块化

    本篇文章给大家分享的内容是关于pastate.js 响应式 react 框架之 模块化  ,有着一定的参考价值,有需要的朋友可以参考一下 这是 Pastate.js 响应式 react state 管理框架系列教程,欢迎关注,持续更新。 P…

    2025年3月8日 编程技术
    200
  • 关于面试:写一个Vue的双向数据绑定

    本篇文章给大家分享的内容是关于面试:写一个vue的双向数据绑定 ,有着一定的参考价值,有需要的朋友可以参考一下 在目前的前端面试中,vue的双向数据绑定已经成为了一个非常容易考到的点,即时不能当场写出来,至少也要能说出原理。本篇文章中我将会…

    2025年3月8日
    200
  • webpack+vuex怎么实现跨域请求数据

    这次给大家带来webpack+vuex怎么实现跨域请求数据,webpack+vuex实现跨域请求数据的注意事项有哪些,下面就是实战案例,一起来看一下。 使用vue-li 构建 webpack项目,修改bulid/config/index.j…

    编程技术 2025年3月8日
    200
  • react组件的性能优化有哪些方面

    这次给大家带来react组件的性能优化有哪些方面,react组件性能优化的注意事项有哪些,下面就是实战案例,一起来看一下。 高德纳: “我们应该忘记忽略很小的性能优化,可以说97%的情况下,过早的优化是万恶之源,而我们应该关心对…

    编程技术 2025年3月8日
    200

发表回复

登录后才能评论