【庖丁解牛】vue-element-admin前端CRUD通用操作组件详解

简介: 【庖丁解牛】vue-element-admin前端CRUD通用操作组件详解

一、背景


vue-element-admin框架之所以能够快速定制应用,得益于其通配的CRUD操作,属性配置多样化且个性化,能够满足绝大部分开发需求,也方便了代码生成


可以深入学习重点源文件是:src/components/Crud/crud.js,一共863行代码,以及下图中其它四个vue组件,形成了对通用CRUD操作的高级封装。

1666275360201.jpg


来一段该文件的历史:


在该文件之前有一个老版本的文件,在src/mixins文件夹下。有4处使用的地方,

1666275370448.jpg

在源码版本记录中观察到:


  1. 在2019年12月9日老版本的文件停止更新了,重新添加了src/components/crud/crud.js以及其它组件,包括表单、分页、搜索框、表格;
  2. 在2019年12月12日更改了现在的名字,并以此为基础进行迭代。

1666275408176.jpg


二、文件一览


共计9个函数,最重要的就是CRUD(options)函数,封装了配置项、方法、钩子函数


1666275432756.jpg

  1. CRUD(options)
  2. callVmHook(crud, hook) 调用钩子函数
  3. mergeOptions(src, opts) 合并配置项,将传入的参数合并到当前实例中
  4. presenter(crud) 生成crud
  5. header() 头部
  6. pagination() 分页
  7. form(defaultForm) 表单
  8. crud(options = {})


三、配置项


默认配置项有:

1666275479817.jpg


四、方法


4.1 普通方法

1666275500694.jpg


4.2 钩子函数

1666275517926.jpg

钩子函数应该说是做的很精细,包含各个用户操作的事件。


钩子函数与vue生命周期的执行顺序应该是我们最关注的,因为事件的起始影响着编程的思路。

image.png


五、小试牛刀


  • 编写后台接口
  • 引入各个组件和数据API接口函数
  • 声明默认表格对象defaultForm

该对象对应着表格要显示的数据列

  • 定义函数cruds()

该函数返回第二节中的CRUD(options)实例,参数options是一个可配置对象,根据需求更改配置元素的值。

  • 混入对象

通过vue混入属性,将通用CRUD暴露的组件函数拿过来

mixins: [presenter(), header(), form(defaultForm), crud()]
  • 请求后台数据

通过钩子函数CRUD.HOOK.beforeRefresh


六、拨云见雾


通用组件怎么运行起来的?

离不开assign,vm.$option,callVm


相关文章
|
17天前
|
JavaScript
Vue 父传子组件传参 defineProps
Vue 父传子组件传参 defineProps
|
17天前
|
JavaScript 前端开发
Vue 创建组件
Vue 创建组件
|
21天前
|
JavaScript
vue给table组件添加合计
vue给table组件添加合计
12 0
|
1月前
|
存储 JavaScript BI
vue组件间通信的几个方法
vue组件间通信的几个方法
23 0
|
1月前
|
JSON JavaScript 前端开发
【form-generator在线表单生成---vue父组件调用vue弹框组件】
【form-generator在线表单生成---vue父组件调用vue弹框组件】
34 1
|
17天前
|
JavaScript
vue路由导航守卫(全局守卫、路由独享守卫、组件内守卫)
vue路由导航守卫(全局守卫、路由独享守卫、组件内守卫)
33 0
|
22天前
|
前端开发 应用服务中间件 nginx
Nginx配置详解Docker部署Nginx使用Nginx部署vue前端项目
Nginx配置详解Docker部署Nginx使用Nginx部署vue前端项目
91 0
|
1天前
|
缓存 安全 JavaScript
前端安全:Vue应用中防范XSS和CSRF攻击
【4月更文挑战第23天】本文探讨了在Vue应用中防范XSS和CSRF攻击的重要性。XSS攻击通过注入恶意脚本威胁用户数据,而CSRF则利用用户身份发起非授权请求。防范措施包括:对输入内容转义、使用CSP、选择安全的库;采用Anti-CSRF令牌、同源策略和POST请求对抗CSRF;并实施代码审查、更新依赖及教育团队成员。通过这些实践,可提升Vue应用的安全性,抵御潜在攻击。
|
5天前
|
NoSQL JavaScript 前端开发
报错场景:ant design vue前端登录时,输入的验证码是对的,但是一直提上验证码错误,登录不进去 报错信息(Error in execution; nested exception)
报错场景:ant design vue前端登录时,输入的验证码是对的,但是一直提上验证码错误,登录不进去 报错信息(Error in execution; nested exception)
18 0
|
8天前
|
JavaScript
Vue Steps步骤组件用法
Vue Steps步骤组件用法
13 0