书签 分享 收藏 举报 版权申诉 / 62
上传文档赚钱

类型手机-QQ-React-Web极致优化课件.ppt

  • 上传人(卖家):三亚风情
  • 文档编号:3495380
  • 上传时间:2022-09-07
  • 格式:PPT
  • 页数:62
  • 大小:2.98MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《手机-QQ-React-Web极致优化课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    手机 QQ React Web 极致 优化 课件
    资源描述:

    1、手机 QQ React Web极致优化Try to be the best个人简介 个人信息-李成熙,AlloyTeam-2014年底加入腾讯-群活动、家校群、互动直播-Github:https:/ 工作方向-前端工程化、自动化-性能优化-Hybrid,React Native主要内容 为什么选React 如何用React更好地实现功能 如何基于React做好优化为什么选 React项目背景 交接的项目一直使用着“三无框架”无测试用例、无充分论证、无人维护开发效率、维护效率 低React特性 组件化 单向数据流 Virtual Dom及增量更新 生态圈大 JSX Learn Once,Writ

    2、e Everywhere如何用React更好地实现功能React 全家桶 构建工具=gulp+webpack 统一状态管理=redux+reselect 开发效率提升=redux-dev-tools+hot-reload 路由控制器=react-router构建工具 webpack优化基础篇 webpack使用优化(react篇)公共css/img/jsreact/react-dom/其它第三方库页面逻辑index.html页码逻辑公共component/逻辑redux actiondump component注册state及调用action的方法smart component数据处理中心区分

    3、dev/prod入口初始化数据/redux中间件调用主入口html文件构建工具构建工具-目录结构 smart component (container),处理statedump component 处理渲染 同一组件的js,css和img放在一起 如果无法使用服务器构建,开发时请让小伙伴统一开发路径 webpack-md5-hash解决路径不同,hash不同的问题构建工具-生产上线区分开发与生产环境 生产环境的时候会自动去掉xxx!=process.env.NODE_ENV包含的代码构建工具-生产上线若要兼容Android 4.0,babel编译使用es2015-loose而不是es2015的

    4、presetUncaught TypeError:Cannot assign to read only property _esModule of#。构建工具-兼容性构建工具-兼容性统一状态管理 redux 状态/数据管理框架 最大优势1.集中管理2.记录历史3.便于扩展 自己处理state遇到的问题1.父子、兄弟组件状态/数据传递2.复杂结构数据更新问题(不重新渲染/过多重复渲染)统一状态管理 redux 分散管理:观察者模式统一状态管理 redux 集中管理:redux统一状态管理 redux 记录历史flux store中同时保存状态和改变状态的逻辑统一状态管理 redux 记录历史re

    5、dux 将两者分开了统一状态管理 redux 便于扩展flux 打log需要在每个store中console.log,入侵了业务代码统一状态管理 redux 便于扩展redux引入了middleware机制,成功解耦统一状态管理 redux store.js统一状态管理 redux reducers.js统一状态管理 redux configureStore.js统一状态管理 redux connect.js统一状态管理 redux 组合在一起Root.jsIndexWrapper开发效率提升 react-hot-loader 让react开发 live reload 搭配webpack.Ho

    6、tModuleReplacementPlugin使用开发效率提升 redux-devtools 移动端慎用,易造成卡顿 可以考虑Chrome插件redux-devtools-extension路由控制器 react-router Single Page Application PC 家校群有使用 移动端面临2个问题1.分页面太多,保留每个分页的dom,数量庞大造成的性能问题2.切换不保留dom,每次增删也很消耗性能如何基于 React 做好优化How to be niubiReact优化的三大方向 状态/数据管理优化 渲染性能优化 首屏性能优化 状态管理优化 数据扁平化状态管理优化 新旧数据都

    7、应该是独立的拷贝 浅拷贝:Object.assign,深拷贝:immutable/lodash.merge状态管理优化 多个reducers处理同一个actionhttps:/ 一个reducer的数据依赖于另外一个 最简单粗暴的办法,在connect.js中处理状态管理优化 一个reducer的数据依赖于另外一个 Reselect 若数据不变,能帮助缓存渲染性能优化 React大部份性能问题都归因于重复渲染大部份人关注这里也会引发性能问题目的是要减少Data Diff渲染性能优化 直观看出重复渲染你可以在每个component的render里,放一个console.log(xxx compo

    8、nent)。然后触发一个action,若几乎全部的component都打出这个log,表明都重复渲染比较严重了渲染性能优化 家校群列表页性能问题 -某些机型长列表滚动卡顿渲染性能优化核心:拷贝数据+数据比较 数据拷贝:寻找数据拷贝类库数据比较:shouldComponentUpate生命默认返回true,这表示要求组件更新。若返回false,则不更新。渲染性能优化 方法一:immutable+immutable-pureRender 使用1.redux-immutable+immutable2.原有redux需要改造,使用immutable api3.pureRender重写掉shouldCo

    9、mponentUpdate,进行data diff-若是es5写法,可以用使mixin-若是es6/es7写法,需要使用decorator,在js的babel loader里面,新增plugins:transform-decorators-legacy。其es6的写法是渲染性能优化 方法二:lodash.merge+non-immutable-pureRender 原因:1.寻求性能稍逊,但也能接受,同时减少包大小的方案2.immutable引入,给js bundle增加50kb。lodash.merge引入只需要20kb。渲染性能优化-Android表现优化前ImmutableLodash.

    10、merge22fps43fps42fps渲染性能优化-iOS表现优化前ImmutableLodash.merge30多fps50多fps50多fps渲染性能优化-其它小Tips 请慎用setState,因其容易导致重新渲染 请将方法的bind一律置于constructor 请只传递component需要的props,避免其它props变化导致重新渲染(慎用spread attributes)请尽量使用const element渲染性能优化-其它小Tips React移动web极致优化首屏性能优化 React自身较大,在首屏渲染的时候,对比其它框架并无优势FrameworkMinimized S

    11、izeReact15.3146kbVue1.075kbRiot2.621kbAngular1.5156kb首屏性能优化 针对有cgi请求,需要吐大量数据的页面 同构直出 有几点值得说明1.比改造以前的项目,做直出更容易2.减少的是首屏显示时间,而非首屏可交互时间3.页面吐出html字符串之后,还需要在客户端,加载react包,进行事件绑定4.做bigPipe之类的优化较难5.考虑好页面的PV与服务器的负载首屏性能优化 React同构直出性能优化57.5%首屏性能优化 React同构直出性能优化首屏性能优化 React同构直出文章React同构直出优化总结腾讯新闻React同构直出优化实践首屏性

    12、能优化 首屏没cgi拉取,但包较大的 拆包 家校群布置页首屏性能优化 拆包 一般来说,都是利用webpack结合react-router进行拆包首屏性能优化 拆包 不用react-rotuer,如何拆包?首屏性能优化 拆包 不用react-rotuer,如何拆包?首屏性能优化 非基础功能,如运营活动 轻量化类react方案 Preact 压缩后只有10kb,gzip后3kb1.开源社区有较多star(认可)2.较好的性能和兼容性3.api跟React接近4.足够的框架周边,配置redux,router等使用,还有同构直出的插件5.团队成员有能力维护的Preact-React的轻量解决方案首屏性能优化 Preact性能局限性 有些优化是React无能为力的 轻量化方案轻量化方案preactreact-lite.简单回顾Starter-Kit steamer-react https:/ web分支、同构分支、preact兼容分支射射!如有谬误,恳请斧正Please give a shotMore to come2016.10.23

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:手机-QQ-React-Web极致优化课件.ppt
    链接地址:https://www.163wenku.com/p-3495380.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库