对项目一些技术的理解,如有错误请指出
侧边栏跨组件传值
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设置背景为这张大图,这样每个元素都会以这张图片为背景,页面只用加载这一张图片