首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

pwa, 上海地铁线路图全新重构.

网站访问地址:https://neal1991.github.io/subway-shanghai 准备 准备工作先做好, vue 和 react 之间,我还是选择了后者。...首先,对组件进行一次拆分: 组件结构 将整个地图理解成一个 Map 组件,再将其分为 4 个小组件: Label: 地图上的文本信息,包括地铁站名,线路名称 Station: 地铁站点,包括普通站点和中转站点...性能优化 以上这些的开发得益于之前的维护,所以重构过程还是比较快的,稍微熟悉了下 react 的用法就完成了重构。...第二个,好的解决办法就是通过异步加载来实现组件加载,效果明显,尤其是对于 InfoCard 组件: 同步 class InfoCard extends React.Component { constructor...继续想想有没有其他的方法,后来我想在最左上上角定义一个箭头动画。

65020
您找到你想要的搜索结果了吗?
是的
没有找到

React性能探索 --- 避免不必要渲染

在这个栗子,只要text的值不变,就不需要重新渲染。...注意的点 PureComponent只会浅比较,所以不适合用于深层嵌套的对象。...与Staleless的关系 不知道有没有人跟我有这样的疑问,无状态组件跟纯净组件有什么不同?...这里做一个区分: 无状态组件只是作为一个展示组件,它的好处是: 易复用,易测试 与逻辑处理数据层解耦,一般来说,app里有越多无状态组件越好,这说明逻辑处理都在上层,例如redux 处理,这样可以不渲染的前提下...我个人觉得,实际,用Perf跟why-did-you-update两个工具已经可以很好帮我们判断哪部分不需要重新渲染,我们可以根据结果做出优化

1.1K60

React性能探索 --- 避免不必要渲染

在这个栗子,只要text的值不变,就不需要重新渲染。...注意的点 PureComponent只会浅比较,所以不适合用于深层嵌套的对象。...与Staleless的关系 不知道有没有人跟我有这样的疑问,无状态组件跟纯净组件有什么不同?...这里做一个区分: 无状态组件只是作为一个展示组件,它的好处是: 易复用,易测试 与逻辑处理数据层解耦,一般来说,app里有越多无状态组件越好,这说明逻辑处理都在上层,例如redux 处理,这样可以不渲染的前提下...我个人觉得,实际,用Perf跟why-did-you-update两个工具已经可以很好帮我们判断哪部分不需要重新渲染,我们可以根据结果做出优化

77530

React渲染问题研究以及Immutable的应用

写在前面 这里主要介绍自己React开发的一些总结,关于react的渲染问题的一点研究。...,react不同的实现方式下render函数将会表现出什么样的结果?...渲染子组件的时间达到764ms,同时堆栈可以看到大量的receiveComponent和updateChildren方法的执行。那么有没有什么办法只渲染改变的部分呢?...,就会出现比较的值相等的情况,此时将会返回false 那么有没有办法改变这个问题,我找到了两个办法: 从数据源头入手 从子组件是否渲染条件入手 从数据源头入手,即为改造数据,将数据进行深拷贝,使得原先的引用与新得到的对象的引用不相同即可...并且最后一个链接也提到,配合React使用通过控制shouldComponentUpdate来达到优化项目的目的。

2K60

高频React面试题及详解

,例如服务器渲染、移动端开发等等 缺点: 无法进行极致优化: 一些性能要求极高的应用虚拟DOM无法进行针对性的极致优化,比如VScode采用直接手动操作DOM的方式进行极端的性能优化 虚拟DOM实现原理...当React渲染一个组件时,它不会等待componentWillMount它完成任何事情 React继续前进并继续render,没有办法“暂停”渲染以等待数据到达。...setState 的批量更新优化也是建立“异步”(合成事件、钩子函数)之上的,原生事件和setTimeout 不会批量更新,“异步”如果对同一个值进行多次setState,setState的批量更新策略会对其进行覆盖...性能优化的手段很多时候是通用的详情见前端性能优化加载篇 React如何进行组件/逻辑复用?...: Render Props虽然摆脱了组件多层嵌套的问题,但是转化为了函数回调的嵌套 React Hooks优点: 简洁: React Hooks解决了HOC和Render Props的嵌套问题,更加简洁

2.4K40

129.精读《React Conf 2019 - Day2》

除此之外,还优化了更多细节体验,比如高亮搜索、HOC 的展示优化嵌套层级过多时不会占用过多的横向宽度等等。...findDOMNode 将 React.createClass this.getDOMNode() 改为 React.findDOMNode。...Render as you fetch 相比 “fetch on render”,更高级别的优化是 “Render as you fetch”,即取数渲染时机之前。...用法是,某个事件取数,比如点击页面跳转按钮时,通过 preloadQuery 预取数,得到的结果并不是取数结果,而是一个标识,渲染组件,把这个标识传给 usePreloadedQuery 可以拿到真实取数结果...没有办法唯一标识组件。 preloadQuery 的好处就是将取数时机与 UI 分离,这样可以更细粒度的控制逻辑: 调用 preloadQuery 时: 组件销毁时取消取数。

1.2K10

《HelloGitHub》第 67 期

功能丰富包括登陆、多层嵌套回复、删除评论、投票、禁止用户评论、图片上传等功能 地址:https://github.com/umputun/remark42 10、rpcx:国内大佬开源的 Go 语言...它久负盛名且简单易用,别看它小但包含了地图常用功能。Leaflet 极易上手,几行代码就能实现地图功能,且支持多种地图数据源。...不知道有没有小伙伴和我一样,刚看到这库不知道能用来干啥。...能够同时登陆和管理多个账号、显示文件体积、文件夹树,还可以在线播放网盘的视频并外挂字幕。...它包含了数据处理、模型训练、回测等模块,涵盖了 Alpha 挖掘、风险建模、组合优化等功能 地址:https://github.com/microsoft/qlib 36、optuna:专为机器学习准备的超参数优化框架

1.2K30

性能问题分析优化实践案例

星球同学问了这样一个性能分析的问题:他们有一个地图服务,数据都存储同一个sql server实例,访问量过高导致服务挂了,开发的解决方案是将地图服务的内存从4G升级到8G,问题就解决了。...她的问题是开发的这种解决办法是否是最优解,有没有更好的解决方案。由于我对他们的系统架构不太了解,也无法看到具体的日志信息和监控,因此我的分析思路是这样的。...我尝试绘制了大致的服务请求调用链路图,如下图所示:按照她的描述,现有系统架构下GIS地图服务会被多个不同系统调用,且所有的地图数据都是存储同一个数据库。...但从我的角度来说,增加内存是短时间内的最合适的办法,但长期来说可能存在一些隐患,下面列举一些性能优化的思路和方法,仅供参考。...具体实践,要综合考虑访问量、投入产出比,再决定是否进行改造。当然,上述的分析和优化方法仅是我个人基于对这个问题的一些猜测,然后结合个人经验给出的建议,不构成实际操作建议,仅供参考。

9310

性能问题分析优化实践案例

星球同学问了这样一个性能分析的问题: 他们有一个地图服务,数据都存储同一个sql server实例,访问量过高导致服务挂了,开发的解决方案是将地图服务的内存从4G升级到8G,问题就解决了。...她的问题是开发的这种解决办法是否是最优解,有没有更好的解决方案。 由于我对他们的系统架构不太了解,也无法看到具体的日志信息和监控,因此我的分析思路是这样的。...我尝试绘制了大致的服务请求调用链路图,如下图所示: 按照她的描述,现有系统架构下GIS地图服务会被多个不同系统调用,且所有的地图数据都是存储同一个数据库。...但从我的角度来说,增加内存是短时间内的最合适的办法,但长期来说可能存在一些隐患,下面列举一些性能优化的思路和方法,仅供参考。...具体实践,要综合考虑访问量、投入产出比,再决定是否进行改造。 当然,上述的分析和优化方法仅是我个人基于对这个问题的一些猜测,然后结合个人经验给出的建议,不构成实际操作建议,仅供参考。

5910

浅谈React性能优化的方向

浅谈React性能优化的方向 Bobi.ink 2019-06-14 本文来源于公司内部的一次闪电分享,稍作润色分享出来。主要讨论 React 性能优化的主要方向和一些小技巧。...一般不必要的节点嵌套都是滥用高阶组件/RenderProps 导致的。所以还是那句话‘只有必要时才使用 xxx’。...所以样式运行时性能方面大概可以总结为:CSS > 大部分CSS-in-js > inline style ---- 避免重新渲染 减少不必要的重新渲染也是 React 组件性能优化的重要方向....解决办法也很简单,就是将数据隔离抽取到单一职责的组件。...image.png 另外程墨 Morgan 避免 React Context 导致的重复渲染一文也提到 ContextAPI 的一个陷阱: <Context.Provider value={{

1.6K30

化繁为简的企业级 Git 管理实践(一):多分支子模块依赖管理

例如,主工程依赖 common、framework、react_native 等多个子模块,而 react_native 子模块又依赖 node_modules、HFCommon、HFModules 等多个嵌套子模块...一旦代码处于游离分支,你就要时刻警惕游离分支上的提交有没有即时合并到非游离分支上。...目前它一共支持如下几个功能,并且不断扩展: fmanager pull #更新当前分支的主工程,并将每个子模块的代码更新到指定分支的最新状态。...需要另外想其他办法让团队其他人“上钩”,并保持钩子的同步。 父工程的钩子不会被继承到子模块,也就是说,如果你希望一个钩子父工程和多个子模块中用到,那你需要为每个仓库都添加一次钩子。...如果有嵌套子模块,父模块的数据目录下还会有 modules 目录,并且可以一直这么嵌套下去。 解决这两个问题后,钩子顺利安装到了每个团队成员的仓库,并且还能时刻保持同步。

1.9K20

指尖前端重构(React)技术分析报告

Angular出现最早,但其原理上并没有React创新的性能优化,且自身相对来说显得笨重。...第二,React 提供的虚拟DOM包含Diff算法,即将原dom copy一份,与改动后的dom对比,只渲染不同的dom节点,实现最小代价渲染,vdom创新的性能优化方式对性能的提升毋庸置疑。...而加载的时候,不管那些代码有没有执行到,都会下载下来并进行加载,造成性能浪费,这一点显然web端很重要,而在cordova是将js代码直接打包在本地,等于跳过了下载步骤但仍然会有加载过程。...所以要想办法使插件提供的变量React不报错,这里不影响ESLint 检错机制的情况下可以采取迂回的方式。...智能建立代码关联时会占用大量资源,某些电脑上会偶尔会出现卡死现象,这一现象我配置比较高(固态硬盘加8g运存)的电脑上同样出现了,解决办法file-setting-File types配置ignore

5.4K30

干货 | 三种主流快平台技术测评,你更青睐谁?

3大主流渲染引擎里,webview、react native/weex、Flutter,复杂度依次降低,渲染性能依次上升。...如果我们要嵌套布局,就要不停的dart里写child,同时dart里给child们设样式参数。上面的代码,只是嵌套了1层,实际开发,dom要嵌套好多层,想象那样的代码。。。...同样,当用户屏幕上操作原生视图层时,要给js引擎发送通知,也会产生这个通信折损。 不过这种性能差别,大多数场景,用户是感受不到的。...前面已经说过,Flutter只是一个基础排版引擎,缺少很多能力,当我们需要在Flutter界面上内嵌一个原生的视频播放扩展控件时(flutter没有内置视频播放能力),或者原生的高德地图sdk,那么拖动视频进度时...不常用的部分,提供插件市场以及免原生介入的插件使用方式。react native、Flutter的社区,也有不少三方提供的原生插件,但是连Airbnb这样的国外开发者对此都不满意。

2.1K20

腾讯QQ音乐前端面经(已offer)

工作遇到过的最难的问题是什么?最后解决了吗?怎么解决的?现在觉得有没有更好的解决方案? 10. 反转单向链表怎么做?需要几个指针?都有什么作用? 11. 你有什么要问我的吗?...5. reactstate有层级很深,比如a.b.c.d,如果只更新c属性有哪些办法?immutable.js实现的原理是什么? 6. 说下crsf 和 xss,分别举例说明,各有什么解决办法?...有用过哪些跨平台框架,react-native中原生端和js端怎么进行通信的? 9. 假设有一个非常复杂耗时的逻辑,代码逻辑已经最优了前提下要你优化,你有哪些办法?...耗时t3的基础上优化下,使t4的耗时只有t3的70%; t4的耗时基础下再优化,使t5的耗时只有t4的70%... 5. 说一下输入一个url地址后的全过程?...(考察https中间人劫持),有什么解决办法? 11. 说出http2至少三个新特性?你们有实际中用过吗? 12. 你有什么要问我的吗? 四面(交叉面) 交叉面和一面差不多,这里就不重复了。

93420

react-native-easy-app 详解与使用之(四)屏幕适配

react-native-easy-app 是一款为React Native App快速开发提供基础服务的纯JS库(支持 IOS & Android),特别是在从0到1的项目搭建初期,至少可以为开发者减少...重新封装了RN的View、Text、Image、FlatList 使用得这些控件适当的时候支持事件或支持icon与文本,能有效减少布局嵌套逻辑。 4....但UI的尺寸属性太多了,每次都调用相应的尺寸比例方法去计算,不仅看着代码不雅观而且代码量也明显增多,那有没有更好的办法呢?...至于UI的尺寸属性,React Native源代码中就可以找到(目前以白名单的形式定义)。这样,使用以上X系列组件的时候不需要做任何特别处理,即可自动实现多屏幕适配。...,比如说外层容器组件(有的时候会设置一个定值),这时候有两种办法: 改用系统原生组件 设置X系列组件属性 raw = {true},设置了此属性,当前UI尺寸就不会做任何缩放 所以当大家需要对app的用

1.7K10

React 16.8.6 升级指南(react-hooks篇)

距离去年10 月 25日React团队首次React Conf上提出hook这个概念到如今,已经快9个多月的时间,又在今年6月,React发布16.8.x版本,React-hook由此正式成为React...React实现了组件的状态管理,组件的渲染,组件的嵌套等等一系列围绕组件所实现的特性,而在16.8.x以前,这些特性主要是围绕着Class组件来实现的,既然react有了这样的能力,何不将其也赋予Function...并且会产生嵌套过深的问题。...组件预编译技术(组件折叠)会在 class 遇到优化失效的 case。...有没有更加聪明的办法,数据变化过后可以自己去服务器请求数据呢: const useFetch = count => { return useCallback(() => { return Promise.resolve

2.5K30
领券