项目的技术理解

180 阅读1分钟

对项目一些技术的理解,如有错误请指出

侧边栏跨组件传值

1、通过头部组件来控制侧边栏组件的展开折叠,用到了vuex来进行组件通信。在state中定义iscollapse判断是否折叠,在mutation中定义一个方法collapseMenu来控制state里的值

2、是由iscollapse这个值来判断侧边栏的,所以在侧边栏组件定义一个方法,然后绑定这个值,监听iscollapse的变化

3、因为是通过头部组件的按钮来控制侧边栏展开折叠的,所以给按钮绑定一个点击事件来改变侧边栏组件拿到的state状态,用$store.commit 调用mutation的collapseMenu。

动画有卡顿延迟问题,可以通过设置collapse-transition=false来解决

导航守卫登录校验

第一次登录调用接口发送给后端用户名和密码,后端收到后会进行验证,成功后返回一个token,前端拿到token后存储在cookie和vuex中。每次跳转路由,就判断cookie中有没有token,设置一个导航守卫判断用户是否登录,没有就跳转到登录页面,有的话就跳转到对应路由页面

权限渲染

初始化时只挂载一些不需要权限的路由如注册登录,等用户登录后返回当前用户的权限表,前端根据这个权限表遍历前端路由表,动态生成用户权限路由,用vue-router的add router将权限路由表动态添加到路由实例中

组件跳转方法

router-link:类似a标签跳转

this.$router.push/replace push:跳转后会像history栈添加记录,点击后退会返回上一个页面

replace:不会添加记录,上一个记录是不存在的

封装echarts

创建echarts组件来加载并初始化echarts容器,根据配置的变化更新图表,在里面新建一个props属性接收父组件传过来的配置。然后创建图表组件(如饼图),引入配置文件,将数据传给子组件echarts组件。哪个页面要用到就引入

图片懒加载

通过观察窗口和图片是否有交叉来判断是否将img写入src

雪碧图

小图标整合在一张背景透明的大图上,通过设置位置来显示不同的图标,可以减少对图片的请求。

用公共css设置背景为这张大图,这样每个元素都会以这张图片为背景,页面只用加载这一张图片