滚动条组件
参考:gitHub API说明以及大佬的API中文讲解

import "./styles.css";
import React, { useState, useEffect, useRef, useMemo } from "react";
import { Scrollbars } from "react-custom-scrollbars";export default function App() {const ref = useRef(null);const [top, setTop] = useState(0);const [scrollTop, setScrollTop] = useState(0);const canToBottom = useMemo(() => {if (top !== 1) {return true;}return false;}, [top]);const canToTop = useMemo(() => {if (top !== 0) {return true;}return false;}, [top]);const toTop = () => {ref.current.scrollTop(scrollTop - 100);};const toButtom = () => {ref.current.scrollTop(100 + scrollTop);};const handleUpdate = (val) => {setTop(val.top);setScrollTop(val.scrollTop);};return (<div className="App"><Scrollbarsstyle={{ height: 300 }}onUpdate={handleUpdate}ref={ref}><p>世间纷乱复杂,我们在不断给自身做“加法”的同时,也要学会对周围的事物做“减法”,将复杂的东西简化,为我所用,并发挥超出原本程度的增幅效果,这才是真正的“高手”。在“码农圈”,学习如何使用.map()、.filter()和.reduce()函数,我们读到、看到和听到的一切都很复杂,无法理解这些概念,因为它们是独立的学习单元。听说这些是意味着上升至启蒙状态的入门知识。真希望自己听到的是实话:早点明白这三种方法其实都是识别和实现过程,循环遍历迭代的原因通常属于三个功能类别之一。回顾之前编写的代码,笔者发现95%的情况下,在对字符串或数组进行循环时,自己都会执行以下操作之一:将语句序列映射(map)到每个值,过滤(filter)满足特定条件的值,或者将数据集减少(reduce)到单个聚合值。这是取得进步的关键时刻,Map、filter和reduce只需要执行其中的一个任务即可!在三个月后回顾代码时,我们的阅读将变得更轻松。不必阅读for循环中的语句,只需理解它的高级意图,就可以看到map/filter/reduce方法,并能开始对该块试图实现的目标有所想法了。就像“哥伦布发现新大陆”一般,面对如此大的进步,我兴奋不已,你呢?世间纷乱复杂,我们在不断给自身做“加法”的同时,也要学会对周围的事物做“减法”,将复杂的东西简化,为我所用,并发挥超出原本程度的增幅效果,这才是真正的“高手”。在“码农圈”,学习如何使用.map()、.filter()和.reduce()函数,我们读到、看到和听到的一切都很复杂,无法理解这些概念,因为它们是独立的学习单元。听说这些是意味着上升至启蒙状态的入门知识。真希望自己听到的是实话:早点明白这三种方法其实都是识别和实现过程,循环遍历迭代的原因通常属于三个功能类别之一。回顾之前编写的代码,笔者发现95%的情况下,在对字符串或数组进行循环时,自己都会执行以下操作之一:将语句序列映射(map)到每个值,过滤(filter)满足特定条件的值,或者将数据集减少(reduce)到单个聚合值。这是取得进步的关键时刻,Map、filter和reduce只需要执行其中的一个任务即可!在三个月后回顾代码时,我们的阅读将变得更轻松。不必阅读for循环中的语句,只需理解它的高级意图,就可以看到map/filter/reduce方法,并能开始对该块试图实现的目标有所想法了。就像“哥伦布发现新大陆”一般,面对如此大的进步,我兴奋不已,你呢?</p></Scrollbars>{canToBottom && <button onClick={toButtom}>向下</button>}{canToTop && <button onClick={toTop}>向上</button>}</div>);
}

也可以在我写的demo上修改调试:https://codesandbox.io/s/react-custom-scrollbars-gf3fh?file=/src/App.js

秀一下最近做的一个大屏(昨天晚上发现左侧组件写的有bug,参照同事的左右滚动组件写的上下滚动,但是用的ahooks的API不是很好同时兼顾点击滚动一屏并且还能够鼠标滚动,所以又临时换组件,肝到了十一点555):

react-custom-scrollbars 滚动条组件的简单实现相关推荐

  1. vue 滚动条_轻量级 React.js 虚拟美化滚动条组件RScroll

    前几天有给大家分享一个Vue自定义滚动条组件VScroll.今天再分享一个最新开发的React PC端模拟滚动条组件RScroll. vue+pc桌面端模拟滚动条组件VScroll rscroll 一 ...

  2. js 隐藏滚动条_轻量级 React.js 虚拟美化滚动条组件RScroll

    前几天有给大家分享一个Vue自定义滚动条组件VScroll.今天再分享一个最新开发的React PC端模拟滚动条组件RScroll. vue+pc桌面端模拟滚动条组件VScroll rscroll 一 ...

  3. 使用React和Spring Boot构建一个简单的CRUD应用

    "我喜欢编写身份验证和授权代码." 〜从来没有Java开发人员. 厌倦了一次又一次地建立相同的登录屏幕? 尝试使用Okta API进行托管身份验证,授权和多因素身份验证. Reac ...

  4. 如何在React中从其父组件更改子组件的状态

    by Johny Thomas 约翰尼·托马斯(Johny Thomas) 如何在React中从其父组件更改子组件的状态 (How to change the state of a child com ...

  5. [react] 在react中无状态组件有什么运用场景

    [react] 在react中无状态组件有什么运用场景 适用于逻辑简单的纯展示的场景,如资料卡片等 个人简介 我是歌谣,欢迎和大家一起交流前后端知识.放弃很容易, 但坚持一定很酷.欢迎大家一起讨论 主 ...

  6. react dispatch_React系列自定义Hooks很简单

    React系列-Mixin.HOC.Render Props(上) React系列-轻松学会Hooks(中) React系列-自定义Hooks很简单(下) 我们在第二篇文章中介绍了一些常用的hooks ...

  7. react中创建一个组件_如何使用React和MomentJS创建一个Countdown组件

    react中创建一个组件 Recently I had to create a Countdown for one of my other projects, and I thought that i ...

  8. React中的Portal组件

    这可以在这里看:http://leozdgao.me/reactzhong-de-portalzu-jian/ 几个月前遇到了写模态窗(modal)的需求,当初其实没什么思路,不知道怎么用更React ...

  9. React中的纯组件

    React中的纯组件 React提供了一种基于浅比较模式来确定是否应该重新渲染组件的类React.PureComponent,通常只需要继承React.PureComponent就可以定义一个纯组件. ...

  10. 滚动条组件 http://www.w3cfuns.com/notes/15098/96195b77bdbcb601590f67f971770bb8.html

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

最新文章

  1. 谢烟客---------Linux之文件安全上下文及特殊权限位
  2. iOS 集成银联支付swift
  3. 错误:由于系统启用了内核调试器,因此不可能进行调试解决方案
  4. 文献学习(part6)--Clustering ensemble based on sample’s stability
  5. Graphviz从入门到不精通
  6. 【OpenCV】OpenCV实战从入门到精通之 -- 常用数据结构和函数(Point、Scalar、Size、Rect、cvtColor)
  7. [Ajax] 实现跨域访问
  8. pcDuino上跑 MQ2 Shield
  9. 这座中国小城,靠“造假”称霸一个全球市场
  10. php百度鹰眼,Android 百度鹰眼里程计算简单实列
  11. 线性调频信号学习笔记
  12. 【阮一峰ES6入门教程学习笔记】函数的扩展
  13. 二自由度云台扫描算法_基于二维压电透射式微扫描器的红外超分辨率成像|压电扫描台...
  14. 微信小程序下拉刷新功能
  15. Android 照相机
  16. 【大白话学习】UniApp 微信小程序与APP应用 开发零基础入门教程(一)---基础页面框架搭建
  17. 盘点那些有逼格的网站
  18. 谷粒商城 Nginx
  19. Github标星5.3K,进阶学习工作最全指南
  20. 百度搜索结果的URL参数 相关提示位置(rsp)

热门文章

  1. linux shc shell脚本_用shc加密shell脚本
  2. 微信公众号里面服务器配置关闭,微信公众号服务器配置无法修改
  3. 一道我根本猜不出来的Trajan
  4. Communication(Floyed+并查集 || Trajan)
  5. 3389、135、137、138、139、445等端口解释和关闭方法
  6. 在利用DXP2004软件进行PCB设计时——自制元器件封装如何添加网络(布线问题)
  7. 细菌感染和抗生素使用
  8. 为什么计算机里没有桌面显示不出来,电脑开机不显示桌面怎么办解决教程
  9. 以互联网公司的经验告诉大家,架构师究竟比高级开发厉害在哪?
  10. 太阳电池IV测试软件,太阳能电池IV测试系统