1.聊一聊实现Vue路由组件缓存遇到的码解’坑‘
2.YesApi 强大的接口管理平台,不懂代码也能快速开发和提供API接口
3.elementui源码学习之仿写一个el-timeline
聊一聊实现Vue路由组件缓存遇到的码解’坑‘
项目背景介绍
在进行公司后台管理系统开发时,遇到了一个在使用keep-alive和vue-router实现的码解路由组件缓存不生效的问题。该项目基于iview-admin@2.0进行开发,码解全局状态管理采用vuex分module实现,码解路由配置采用vue-router进行表方式实现。码解java源码阅读解析项目属于基于RBAC的码解后台管理系统,涉及多用户多角色的码解权限控制和动态系统菜单功能。
问题解决
梳理问题并核对官方文档后,码解发现基本用法和组件缓存原理均无误。码解但深入检查后发现,码解问题出现在keep-alive的码解include参数设置上。iview-admin@2.0中通过路由meata参数——notCache控制组件缓存。码解官方文档指出,码解当设为true时,码解页面在切换标签后不会缓存,但若需要缓存,源码转换规则则无需设置notCache字段,并确保页面组件的name属性与路由配置的name一致。项目中路由配置由后台功能决定,修改无法缓存页面的路由配置的name即可解决。
研究iview-admin源码
研究发现,iview-admin中将navTagList、menuList等数据保存在全局vuex的app模块中,navTagList动态更新当前打开的标签页,menuList根据路由记录的meta参数的access字段过滤。cacheList作为getters,计算出需要keep-alive缓存的组件name数组。通过动态修改keep-alive组件的exclude值来更新路由缓存规则。
iview-admin的局限性
iview-admin的权限路由控制采用路由meta参数的access数组来标记路由可访问的用户角色,根据路由记录计算用户菜单。这种实现存在不足,需要优化。源码驱动器
优化方案
对iview-admin的权限控制和路由配置进行优化,将路由分为基础路由和业务路由。基础路由直接配置到router中,业务路由动态注册。在vuex的user模块中添加获取用户路由配置的action,在用户登录成功后动态注册路由。
进一步研究
未来计划深入研究vue-router的view部分源码,理解router-view与keep-alive的关联。后续更新将在此分享。
YesApi 强大的接口管理平台,不懂代码也能快速开发和提供API接口
强大的接口管理平台 YesApi 接口大师,面向API接口低代码开发、管理、开放及服务,可快速构建专属API接口管理平台。通过低代码可视化配置,圈子聊天源码帮助快速搭建接口开放平台,管理API接口。
YesApi 提供四套源代码,包含接口系统、开放平台、管理后台、API文档与技术文档,以及API商城。主题模板覆盖3套,包括默认模板、接口商城模板和API服务平台模块,支持自定义模板。系统支持API接口计费,自定义流量付费套餐,包括优惠套餐、付费接口,dnf大漠教程源码支持在线支付(支付宝、PayPal)、下单购买及流量计费。
YesApi 接口平台具备自动生成文档、代码、权限与测试的强功能,极大释放技术人员资源,专注于业务开发。后台可自动生成API接口代码,支持在线接口文档与离线HTML文档生成,可设置查询密码,集成在线接口测试,自动生成接口文档,实时刷新,减少开发成本。
接口开放能力强大,支持多开发者多应用接入,灵活分配接口权限,内置+款API,涵盖开放接口、平台接口、后台接口、任务接口。管理后台提供开发者账号管理、应用接口权限分配及限定接口调用次数功能。
平台开放功能提供给内部或外部开发者使用,基于iView Admin前端框架,包含开发者登录注册、开发者应用、开发者接口权限、开发者中心等模块。管理后台提供全面后台管理与运营能力,支持IP白名单、接口签名、接口次数限制、接口权限分配、接口参数加密,防止SQL注入,包含首页、账号管理、应用管理、接口管理、素材库、配置管理、计划任务、数据库管理、统计、权限管理等十大功能模块。
Wiki技术开发文档以markdown格式编写,提供给开发团队内部查阅共享,内容包含技术开发文档、产品介绍文档、使用手册。包含安装、部署、开发、使用、产品等教程文档。
YesAPI支持搭建API接口商城,提供展示、推广与介绍API服务与收费套餐的首页,商城模板一键切换与使用。在线体验预览地址如下:
管理后台:yesx2.com/admin/(账号:admin 密码:)
开放平台:yesx2.com/platform/
开发文档:yesx2.com/wiki/#...
elementui源码学习之仿写一个el-timeline
本文记录了仿写el-timeline组件的细节,以深入理解饿了么UI组件的实现机制。本系列文章将持续更新,深入探讨elementui源码的学习与实践。可访问开源仓库,通过npm start运行代码,结合注释辅助理解。
时间线组件构成包括:时间线小圆点、时间线竖线条、时间戳与具体内容详情四个部分。如图所示。
时间线组件主要需求包括:按时间线正序或倒序展示、自定义时间线小圆点样式与颜色、使用小图标替代时间线小圆点、控制时间戳与具体内容详情的位置、时间戳的显示与隐藏。
对官方组件的见解包括:提供与注入可以简化、时间戳位置优化、简约封装参考其他库组件。Antd与iview的时间线组件参数较为精简。
回顾知识点:数组方法的使用,如this.$slots.default.reverse();以及`:style`中的四元表达式应用,如`:style="border: ${ elementIcon} ${ borderColor}"`。
组件代码示例如下:`myTimeline`、`myTimelineItem`。完整代码在开源仓库,欢迎访问并star。
若本文对您有所助益,期待您的star,感谢支持!