iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > node.js >怎么用React做出好用的Switch组件
  • 762
分享到

怎么用React做出好用的Switch组件

2024-04-02 19:04:59 762人浏览 薄情痞子
摘要

小编给大家分享一下怎么用React做出好用的Switch组件,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧! 前言 HTML5 将 WEB 开发者的战场从传统的 PC 端带到了移动端.然

小编给大家分享一下怎么用React做出好用的Switch组件,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

前言

HTML5WEB 开发者的战场从传统的 PC 端带到了移动端.然而移动端交互的核心在于手势和滑动,如果只是将 PC 端的点击体验简单地移植到移动端,势必让移动端体验变得了无生趣.以某 APP 收银台的支付密码输入框为例,里面的 Switch 组件只能通过点击改变状态,和原生控件的体验有着非常大的差距,不符合移动端的交互习惯.接下来,我们来尝试做出一个支持手指滑动操作的 Switch 组件,提升用户体验.

手势检测

手势交互的关键在于一套手势事件监测系统,用于检测move, tap, double tap, long tap, swipe, pinch, rotate等手势行为.安卓和 iOS 都提供一套完善的手势系统供原生 APP 调用,遗憾的是,html5 还没有相应的 api,需要 HTML5 工程师自己实现.出于简化,我们的 Switch 组件只支持 move 事件,因此,本章也只实现 move 事件的检测.其他事件的检测我们将在下一篇博文 <<HTML5 手势检测原理和实现>> 中详细介绍.

我们对move事件的要求非常简单,就是每当手指在 DOM 内移动时,就把手指划过的相对距离告知监听器.

假设手指从 (X1,Y1) 点滑到 (X2,Y2) 点,那么手指在两点间滑动的X轴相对距离就是 X2 - X1 ,Y轴相对距离 Y2 - Y1.所以,只要我们能够获取手指的坐标位置,就能算出手指每次移动的相对距离,然后把&Delta;X和&Delta;Y告知 move 事件的监听函数.

所以,move事件的监听器一般是这样(注意es6语法):

_onMove (event) {

  let {

    deltaX,  //手指在X轴上的位移

    deltaY   //手指在Y轴上的位移

  } = event;

  ...

}

无论多么复杂的手势系统,他们都会基于四个最基础的触摸事件:

touchstart

touchmove

touchend

touchcancel

通过他们可以获取手指触摸点的坐标信息,进而算出手指移动的相对距离.

根据上面的图解,先来实现 touch 事件监听函数:

_onTouchStart(e) {

  let point = e.touches ? e.touches[0] : e;

  this.startX= point.pageX;

  this.startY = point.pageY;

}

_onTouchStart 函数非常简单,就是记录下初始触摸点的坐标,保存在startX startY 变量中.

_onTouchMove(e) {

  let point = e.touches ? e.touches[0] :e;

  let deltaX = point.pageX - this.startX;

  let deltaY = point.pageY - this.startY;

  this._emitEvent('onMove',{

    deltaX,

    deltaY

  });

  this.startX = point.pageX;

  this.startY = point.pageY;

  e.preventDefault();

}

_onTouchMove 函数逻辑也比较清楚,通过 touch 的触摸点 point 和 startX, startY 得到手指的相对位移 deltaX, deltaY, 然后发出 onMove 事件,告知监听器有 move 事件发生,并携带 deltaX, deltaY 信息.最后,用现在的触摸点坐标去更新 startX, startY.

看完了这篇文章,相信你对“怎么用React做出好用的Switch组件”有了一定的了解,如果想了解更多相关知识,欢迎关注编程网node.js频道,感谢各位的阅读!

--结束END--

本文标题: 怎么用React做出好用的Switch组件

本文链接: http://www.lsjlt.com/news/96414.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么用React做出好用的Switch组件
    小编给大家分享一下怎么用React做出好用的Switch组件,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧! 前言 HTML5 将 WEB 开发者的战场从传统的 PC 端带到了移动端.然...
    99+
    2024-04-02
  • react中的switch怎么用
    这篇文章主要介绍“react中的switch怎么用”,在日常操作中,相信很多人在react中的switch怎么用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”react中的s...
    99+
    2024-04-02
  • 怎么写出React组件
    这篇文章主要介绍“怎么写出React组件”,在日常操作中,相信很多人在怎么写出React组件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么写出React组件”的疑惑有所帮助!接下来,请跟着小编一起来学习吧...
    99+
    2023-06-17
  • React父组件怎么调用子组件的方法
    本教程操作环境:Windows7系统、react18版、Dell G3电脑。在React中,我们经常在子组件中调用父组件的方法,一般用props回调即可。但是有时候也需要在父组件中调用子组件的方法,通过这种方法实现高内聚。有多种方法,请按需...
    99+
    2023-05-14
    React.js 前端
  • 怎么使用css3实现switch组件开关
    这篇文章主要介绍了怎么使用css3实现switch组件开关,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。基于表单的checkbox效果图原理checkbox, 有两种状态, ...
    99+
    2023-06-08
  • react-native-tab-navigator组件怎么用
    小编给大家分享一下react-native-tab-navigator组件怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!要...
    99+
    2024-04-02
  • React函数组件与类组件怎么使用
    这篇“React函数组件与类组件怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“React函数组件与类组件怎么使用”文...
    99+
    2023-06-30
  • React-Native组件之Modal怎么用
    这篇文章将为大家详细讲解有关React-Native组件之Modal怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Modal组件可以用来覆盖包含React Nati...
    99+
    2024-04-02
  • React优化子组件render怎么用
    这篇文章主要为大家展示了“React优化子组件render怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“React优化子组件render怎么用”这篇文章吧...
    99+
    2024-04-02
  • react拖拽组件react-sortable-hoc的使用
    目录1.文件12.文件23.使用使用react-sortable-hoc实现拖拽 如图: 提示:下面案例可供参考 1.文件1 代码如下(示例):文件名称:./dragcompone...
    99+
    2023-02-24
    react拖拽组件 react sortable-hoc
  • 微信小程序表单组件开关switch怎么用
    这篇文章主要介绍“微信小程序表单组件开关switch怎么用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“微信小程序表单组件开关switch怎么用”文章能帮助大家解决问题。switch开关选择器。属性...
    99+
    2023-06-26
  • React组件的应用介绍
    目录1. 介绍2. 组件的创建方式2.1 函数创建组件2.2 类组件3. 父子组件传值3.1 函数组件3.2 类组件1. 介绍 组件允许你将 UI 拆分为独立可复用的代码片段,并对每...
    99+
    2024-04-02
  • React组件的用法概述
    目录组件的定义:React组件函数式组件类式组件组件实例三大属性statepropsrefs与事件处理组件的定义: 理解:用来实现局部功能效果的代码和资源的集合(html/css/j...
    99+
    2023-02-17
    React组件的用法 React组件
  • 怎么用React撸一个日程组件
    本篇内容主要讲解“怎么用React撸一个日程组件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用React撸一个日程组件”吧!目录结构└─Calendar   ...
    99+
    2023-06-05
  • React中Native悬浮按钮组件怎么用
    小编给大家分享一下React中Native悬浮按钮组件怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!React Nativ...
    99+
    2024-04-02
  • 怎么使用react实现一个tab组件
    本教程操作环境:windows7系统、react18.0.0版、Dell G3电脑。怎么使用react实现一个tab组件?react写Tab组件使用react写TAB栏组件和对应hover事件(背景:在用gatsby开发页面时,遇到这样的组...
    99+
    2022-11-22
    tab组件 React
  • react组件样式引用失败怎么办
    本教程操作环境:Windows10系统、react18.0.0版、Dell G3电脑。react组件样式引用失败怎么办?关于在react项目中引入antd样式不生效的问题1. 在react项目中下载安装antd依赖包npm i --save...
    99+
    2023-05-14
    React
  • 使用react怎么实现一个Radio组件
    使用react怎么实现一个Radio组件?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。测试组件:class Test extends Comp...
    99+
    2023-06-14
  • React中怎么实现Portal可复用组件
    这篇文章给大家介绍React中怎么实现Portal可复用组件,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1、通常你的网站只有一个root<body>  <...
    99+
    2024-04-02
  • React中怎么实现组件逻辑复用
    React中怎么实现组件逻辑复用,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1. MixinsMixins 事实上是 Rea...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作