user_k6OfdZ9N

user_k6OfdZ9N 查看完整档案

北京编辑  |  填写毕业院校  |  填写所在公司/组织填写个人主网站
编辑
_ | |__ _ _ __ _ | '_ \| | | |/ _` | | |_) | |_| | (_| | |_.__/ \__,_|\__, | |___/ 个人简介什么都没有

个人动态

user_k6OfdZ9N 提出了问题 · 2020-07-30

数组更新渲染过慢

react-hooks组件里,维持了个数组,去map出jsx,但是当数组过多的时候,更新渲染过慢,有其他的解决办法吗?
类似如下

const [arr ,setarr] = useState([1,2,3,4,5])
...
return (<>
arr.map(item=>{
return(<div>{item}</div>)
})
</>)

实际:数据比这多,return的jsx比这复杂很多,每次setarr,全部更新渲染,当arr很多的时候,更新渲染慢啊!!!
有其他的解决方案吗?
跪求,呜呜~~

关注 3 回答 2

user_k6OfdZ9N 提出了问题 · 2020-07-17

useEffect清除副作用带第二个参数,反而可以正常清除定时器?求解疑

先描述一下,
看文档上写清除副作用只需要返回一个函数即可,相当于componentWillUnmount

使用的代码

  let timer: any
  const afterChartCreated = (reChart) => {
    if (reChart) {
      timer = window.setTimeout(() => {
      console.log('定时器')
        const data = reChart.getCSV();
        setchartData(data);
      }, 5000);
    }
  };

 

我以为清除方式:立即清除了好像,‘定时器’没有打印

  useEffect(() => {
    return () => {
      clearInterval(timer)
    }
  })

实际生效的方式:

 useEffect(() => {
    return () => {
      clearInterval(timer)
    }
  }, [])

我的疑惑点:
1:第二个参数为[],时候不是相当于componentDidMount嘛,怎么反而清除,并且代码也执行了?
2:为什么我以为的清除方式,没有启用成功定时器?
描述的有点乱,希望大佬解疑

关注 0 回答 1

user_k6OfdZ9N 发布了文章 · 2020-07-14

锚点踩坑那些事

最近有个需求是关于锚点点击后快速跳转到目标位置,爬坑出来,记录一下,以备未来再次遇到。

好记性不如烂笔头。

antd Anchor

title属性支持自定义样式

我们的目标是自定义样式实现锚功能

坑点1:

目标结构


实际渲染


会多出来一个div在第一个,渲染的是demo里的蓝色圈圈

? 解决办法:css让小球的布局为none,原来为inline-block


:global(.ant-anchor-ink-ball.visible) {
  display: none !important
}

坑点2

antd Anchor底层是使用的a标签实现锚点实现功能的。

现象是每次点击锚点都会重新渲染组件,并且卡顿

在需要滚动的组件里打印 ===> '渲染',每次点击后都会执行

❓原因:每次点击锚点,锚点改变hash值, 页面不是在刷新, 而是a标签在跳转

? 解决办法:阻止a的默认跳转事件

<a onClick={(e) => {
    e.preventDefault()
}}>业绩分析</a>

ps:react里面只能使用 e.preventDefault()来阻止,不能使用return false

其他阻止a的默认行为的方法自行百度

正确的跳转姿势

const scrollToAnchor = (anchorName) => {
    if (anchorName) {
      // 找到锚点
      let anchorElement = document.getElementById(anchorName);
      // 如果对应id的锚点存在,就跳转到锚点
      if (anchorElement) { anchorElement.scrollIntoView({ block: 'start', behavior: 'smooth' }); }
    }
}

跳转到的区域

<div id='ProductOverview'>
  <ProductOverview rows={dataSource} benchmarkdata={benchmarkdata}></ProductOverview>
</div>

其他

锚点高亮等参考https://juejin.im/post/5de285...

查看原文

赞 0 收藏 0 评论 0

user_k6OfdZ9N 赞了回答 · 2020-07-13

解决锚点刷新页面

hash路由监听#后的hash值跳转页面, 锚点改变的就是hash值, 其实你的页面不是在刷新, 而是在跳转
帮你搜了篇文章hash 路由如何使用锚点

关注 2 回答 1

user_k6OfdZ9N 关注了标签 · 2020-07-13

python

Python(发音:英[ˈpaɪθən],美[ˈpaɪθɑ:n]),是一种面向对象、直译式电脑编程语言,也是一种功能强大的通用型语言,已经具有近二十年的发展历史,成熟且稳定。它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务。它的语法非常简捷和清晰,与其它大多数程序设计语言不一样,它使用缩进来定义语句。

Python支持命令式程序设计、面向对象程序设计、函数式编程、面向切面编程、泛型编程多种编程范式。与Scheme、Ruby、Perl、Tcl等动态语言一样,Python具备垃圾回收功能,能够自动管理存储器使用。它经常被当作脚本语言用于处理系统管理任务和网络程序编写,然而它也非常适合完成各种高级任务。Python虚拟机本身几乎可以在所有的作业系统中运行。使用一些诸如py2exe、PyPy、PyInstaller之类的工具可以将Python源代码转换成可以脱离Python解释器运行的程序。

Python的主要参考实现是CPython,它是一个由社区驱动的自由软件。目前由Python软件基金会管理。基于这种语言的相关技术正在飞快的发展,用户数量快速扩大,相关的资源非常多。

关注 134756

user_k6OfdZ9N 关注了标签 · 2020-07-13

mysql

MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。在2008年1月16号被Sun公司收购。而2009年,SUN又被Oracle收购。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内。这样就增加了速度并提高了灵活性。MySQL的SQL“结构化查询语言”。SQL是用于访问数据库的最常用标准化语言。MySQL软件采用了GPL(GNU通用公共许可证)。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。

关注 72750

user_k6OfdZ9N 关注了标签 · 2020-07-13

关注 4468

user_k6OfdZ9N 关注了标签 · 2020-07-13

算法

算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。

关注 17140

user_k6OfdZ9N 关注了标签 · 2020-07-13

spring

Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。

关注 28457

user_k6OfdZ9N 关注了标签 · 2020-07-13

关注 65923

认证与成就

  • 获得 0 次点赞
  • 获得 4 枚徽章 获得 0 枚金徽章, 获得 0 枚银徽章, 获得 4 枚铜徽章

擅长技能
编辑

开源项目 & 著作
编辑

(゚∀゚ )
暂时没有

注册于 2020-07-10
个人主页被 202 人浏览