这是我参与11月更文挑战的第1天,活动详情查看:2021最后一次更文挑战
前端性能优化问题 :减少http请求次数,精减代码量,减少dom,可以用你cdn上的东西(可以减轻自己服务器的压力)操作等等。
sessionStorage、localStorage、cookie的区别:
共同点:都是保存在浏览器端,且是同源(即不跨域)的。
区别:
1.与服务器的数据交换方式不同。cookie数据始终在同源的http请求中携带(即使不需要),即cookie在浏览器和服务器间来回传递。而sessionStorage和localStorage不会自动把数据发给服务器,仅在本地保存。
2.存储大小限制也不同,cookie数据不能超过4k,同时因为每次http请求都会携带cookie,所以cookie只适合 保存很小的数据,如会话标识。sessionStorage和localStorage虽然也有存储大小的限制,但比cookie大得多,可以达到5M或更大。 3.数据有效期不同,sessionStorage:仅在当前浏览器窗口关闭前有效,自然也就不可能持久保持;localStorage:始终有效,窗口或浏览器关闭也一直保存,因此用作持久数据;cookie只在设置的cookie过期时间之前有效,即使窗口或浏览器关闭。 4.Cookie可以设置有效期,路径(path),域(domain)。
数组排序和数组去重问题。
数组的去重可以用js中的Set,排序用sort
跨域
前后端分离开发必定跨域(因为前端有自己的服务器localhost:8080,后端也有自己的服务器)
后台使用跨域资源共享(CORS)
cors 跨域资源共享 Cross-origin resource sharing是一种跨域的解决方案 它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从而克服了AJAX只能同源使用的限制。 但是需要浏览器的支持。 值得注意的是: 整个CORS通信过程,都是浏览器自动完成,不需要用户参与。对于开发者来说,CORS通信(只要在服务器端设置了就行)与同源的AJAX通信没有差别,代码完全一样。浏览器一旦发现是cors情况的AJAX请求跨源,就会自动添加一些附加的头信息,有时还会多出一次附加的请求,但用户不会有感觉。
权限验证
在一个系统中,不同的用户会拥有不同的权限,不同的权限,要展示不同的菜单。
当我们登录时,后台会返回一个json,json中有roles属性,该属性是一个数组,包含了该用户的角色名 roles:['admin','user']。
这个时候,就可以把需要异步添加的路由中符合对应权限的给筛选出来。
我们拥有一个数组叫asyncRoutes 根据数据中对应对象里的meta中的roles 我们可以判断出符合刚才roles的那些路由。
导航守卫
有的人也叫路由的声明周期
query参数
通过this.$route.query.key 就可以获取到对应的值。
响应式布局
1.pc端响应式布局:是指屏幕大小缩放时样式发生相应改变。运用媒体查询@media来设置。 2.移动端响应式布局:是指根据移动端不同设备实现页面正常显示的方案。运用以下三种方案布局:a. 百分比布局。b. flex布局。c. rem布局