vue项目开发中,首屏加载空白的解决方案?
1:SSR,服务端渲染也可以解决首屏加载空白这个问题,因为服务端会把所有数据全部渲染完成再返回给客户端。
2:路由懒加载,
3:骨架屏,骨架屏就是在进入项目的内容首次绘制的时候,给它来一个类似轮廓的东西,当我们的页面加载完成后就会消失。
4:loading,首页加载一个loading或许是最原始的方法了。
vue要做权限管理怎么做?如果控制到按钮级别的权限怎么做?
权限是对特定资源的访问许可,所谓权限控制,也就是确保用户只能访问到被分配的资源。总的来说,所有的请求发起都触发前端路由或视图,所以我们可以从两方面入手,对触发权限的源头进行控制:
1:路由方面:用户登录后只能看到自己有权访问的导航菜单,也只能访问有权访问的路由地址,否则跳转到404
2:视图方面:用户只能看到自己有权浏览的内容和有权操控的控件
按钮权限也可以用v-if来判断。
谈谈你对Token校验机制的理解?
token就是一种连接身份证明,往往由一串字符串表示,是和服务器通信的令牌,如果你的token不通过,那么就无法访问到后台服务器。
vue项目怎么进行SEO的优化?说说你对SSR的理解?
SSR服务端渲染,在服务端html页面节点,已经解析创建完了,浏览器直接拿到的是解析完的页面结构。
SSR也就是服务端渲染,也就是把vue在客户端把标签渲染成HTML的工作放在服务端完成,然后再把HTML直接返回给客户端。
SSR的优点:
1:更好的SEO
2:首屏加载速度更快
SSR的缺点:
1:开发条件会受到限制,服务器端渲染只支持beforeCreate和created两个钩子
2:当需要一些外部扩展库时需要特殊处理,服务端渲染应用程序也需要处于Node.js的运行环境。
有封装过Axios吗?介绍一下你项目实践中的Axios封装逻辑?
有,三层封装模型:实例层=>CRUD层=>应用层,视图直接与应用层打交道,实例层封装了axios实例(包含了baseUrl等基础配置)+实例拦截器,再请求拦截器中可以注入通用配置,比如token。在响应拦截器中可以统一过滤数据。
CRUD层封装了通用的POST/DELETE/PUT/GET请求。
应用层调用CRUD封装的曾删改查方法。