链接: https://pan.baidu.com/s/1d6YONkCi4u7T1ZBm1yZLYg 提取码: iamh
作者-\/ 307570512

前端性能优化建议

性能优化是把双刃剑,有好的一面也有坏的一面。好的一面就是能提升网站性能,坏的一面就是配置麻烦,或者要遵守的规则太多。并且某些性能优化规则并不适用所有场景,需要谨慎使用,请读者带着批判性的眼光来阅读本文。

前端性能的一个重要指标是页面加载时间,不仅事关用户体验,也是搜索引擎排名考虑的一个因素。

来自Google的数据表明,一个有10条数据0.4秒能加载完的页面,变成30条数据0.9秒加载完之后,流量和广告收入下降90%。
Google Map 首页文件大小从100KB减小到70-80KB后,流量在第一周涨了10%,接下来的三周涨了25%。
亚马逊的数据表明:加载时间增加100毫秒,销量就下降1%。

尽量减少 HTTP 请求个数——须权衡
使用CDN(内容分发网络)
为文件头指定 Expires 或 Cache-Control ,使内容具有缓存性。
避免空的 src 和 href
使用 gzip 压缩内容
把 CSS 放到顶部
把 JS 放到底部
避免使用 CSS 表达式
将 CSS 和 JS 放到外部文件中
减少 DNS 查找次数
精简 CSS 和 JS
避免跳转
剔除重复的 JS 和 CSS
配置 ETags
使 AJAX 可缓存
尽早刷新输出缓冲
使用 GET 来完成 AJAX 请求
延迟加载
预加载
减少 DOM 元素个数
根据域名划分页面内容
尽量减少 iframe 的个数
避免 404
减少 Cookie 的大小
使用无 cookie 的域
减少 DOM 访问
开发智能事件处理程序
用 代替 @import
避免使用滤镜
优化图像
优化 CSS Spirite
不要在 HTML 中缩放图像——须权衡
favicon.ico要小而且可缓存
保持单个内容小于25K
打包组件成复合文本

前端框架vue、react源码如何深入学习

第一步:可以从lodash这种工具库开始看,因为都是比较小块的函数,比较好上手理解,也容易调试看效果。还可以补足自己的基础,例如节流、防抖、深拷贝等。另外还推荐30 seconds of code,全是小而美的代码片段,有些lodash的函数可以用这个替代。
第二步:找到了看源码的感觉后,再去看某个类库的源码,比如说redux、moment这种,功能专一同时也兼顾深度。完全理解 redux(从零实现一个 redux)
带着问题看React-Redux源码(一万四千字长文预警)可以再去看现在mvvm框架实现的原理,也是从单一的功能开始,拆解mvvm框架的通用实现模式,如双向绑定、虚拟dom等,最后实现自己的mini mvvm。
第四步:这时候你具备了看react、vue这种框架的能力了,最好还是带着问题去看,比如看react fiber的原理、如何渲染的,setState怎么操作等等。
最后:可以试着参与到开源框架的开发中来,对preact、vue等框架进行一些issue的修复和功能的迭代。如果觉得过于困难,可以对react或者vue周边生态的库进行pr,经过前面的这么多铺垫,这时候也可以释放自己创造力了,可以试着做一些对标业界开源高质量的轮子。

6.点击Father组件的div,Child会打印Child吗

function Child() {console.log('Child');return <div>Child</div>;
}function Father(props) {const [num, setNum] = React.useState(0);return (<div onClick={() => {setNum(num + 1)}}>{num}{props.children}</div>);
}function App() {return (<Father><Child/></Father>);
}const rootEl = document.querySelector("#root");
ReactDOM.render(<App/>, rootEl);

7.打印顺序是什么

function Child() {useEffect(() => {console.log('Child');}, [])return <h1>child</h1>;
}function Father() {useEffect(() => {console.log('Father');}, [])return <Child/>;
}function App() {useEffect(() => {console.log('App');}, [])return <Father/>;
}

8.componentDidMount和useEffect的区别是什么

class App extends React.Component {componentDidMount() {console.log('mount');}
}useEffect(() => {console.log('useEffect');
}, [])

coderwhy - WEB前端线上系统课全程直播课相关推荐

  1. Web前端线上系统课-01-HTML+CSS/06-CSS盒子模型-CSS设置背景

    CSS盒子模型-CSS设置背景 盒模型 margin <!DOCTYPE html> <html lang="en"><head><met ...

  2. Web前端线上系统课-01-HTML+CSS/08-结构伪类-图形-字体-字体图标-元素定位

    结构伪类-图形-字体-字体图标-元素定位 结构性伪类选择器 nth-child 父元素中的第n个子元素 nth-child(n) <!DOCTYPE html> <html lang ...

  3. python在线学习直播-Python在线学习最有效马哥开启全网独家全程直播课

    原标题:Python在线学习最有效马哥开启全网独家全程直播课 一直以来,IT行业的高薪吸引了大量的人员进入--2017年,国家统计局发布的薪酬水平统计中,IT首次超过金融,成为平均薪资最高的行业. I ...

  4. Jmeter对Web Socket进行压力测试 —— 200人直播课实战经验

    转载 Jmeter对Web Socket进行压力测试 -- 200人直播课实战经验 分类专栏: Jmeter 测试经验 Web Socket 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-S ...

  5. 青灯教育 python录播课_9款线上少儿编程课测评合集:录播课、直播课,最后2家的老师难选到飙泪!...

    [写在前面]如果大家在给孩子选择英语.数学.编程.语文等课上有疑问,欢迎加我个人微信:18069192768 详谈,为方便我及时通过好友申请,请备注"知乎家长". 少儿编程教育是近 ...

  6. 前端线上图片怎么生成马赛克?

    前言 说起图片的马赛克,可能一般都是由后端实现然后传递图片到前端,但是前端也是可以通过canvas来为图片加上马赛克的,下面就通过码上掘金来进行一个简单的实现. 实现 实现过程 <img src ...

  7. 前端线上图片生成马赛克

    前言 说起图片的马赛克,可能一般都是由后端实现然后传递图片到前端,但是前端也是可以通过canvas来为图片加上马赛克的,下面就进行一个简单的实现. 思路 最开始需要实现马赛克功能是需要通过canvas ...

  8. 前端线上问题如何调试

    记录Vue开发过程中遇到的问题,测试环境以及本地显示都没有问题,但是一上线就出现问题,于是对于这个问题进行排查,在此记录排查问题的步骤以及方法,希望对大家有帮助. 错误信息:Uncaught Type ...

  9. 一道百度前端线上笔试题

    要求: 输入两个字符串   strA   长度 1-50 只能包含 0或者1   strB   长度 1-5   可以包含 0或1或? (? 代表    0  或者 1) 例如: strA = '10 ...

最新文章

  1. SQL Server 求结果
  2. 机器学习 -- 信息论
  3. apt update无法连接上 127.0.0.1:10808
  4. 387. First Unique Character in a String
  5. android gpu 视频编码,android – 编码器崩溃对Adreno GPU编码从Surface
  6. 面试题55 - I. 二叉树的深度
  7. 博文视点程序员读书节,大咖带你共读十日精彩
  8. 页面刷新_刷新vue页面,解决数据丢失
  9. Kubernetes基础篇:主要特性、基本概念与总体架构
  10. 关于下载excel 解析文件名乱码
  11. CTF—命令执行总结
  12. sdcc和C51中断程序
  13. 2007中文网志年会印象
  14. GitHub官网访问慢的解决问题
  15. 用 husky 和 lint-staged 构建代码检查工作流
  16. Kernel.org hacked – how to get Android repo?
  17. JS逐页转pdf文件为图片格式
  18. 快醒醒吧!数据库mysql外文参考文献
  19. 面试题promise原理
  20. pygame制作飞机大战1——规划

热门文章

  1. 高清无码的MP4如何采集?python带你保存~
  2. 一款实用动画的效果实现
  3. 【后端】Java根据日期获取哪年的第几季度
  4. 源码安装httpd服务
  5. 使用SeaDas对Sentinel-3(OLCI)、Sentinel-2(MSI)进行大气校正
  6. 学习笔记(01):机器学习数学基础--概率论与数理统计视频教学-矩估计和最大似然估计...
  7. linux用户无法sudo解决办法
  8. 美食主题网页设计 学生HTML个人网页作业作品下载 个人主页博客网页设计制作 大学生个人网站作业模板 dreamweaver简单个人网页制作
  9. ARM的六大类指令集---LDR、LDRB、LDRH、LDM、STR、STRB、STRH、STM
  10. 软件工程理论、方法与实践(第十一章)