事件的分类
我们主要依托于事件来进行组件间的交互。为了满足组件与组件、组件与系统、组件与服务端的交互,我们大致可以将事件分为三个类别:
- 组件方法:每个组件都会暴露出一些方法供其他组件进行调用。例如表格组件,我们可以暴露出查询表格数据方法;弹窗组件,可以暴露打开、关闭方法等等。
- 系统动作:有些方法并不属于某个组件,而是系统全局的动作,例如路由的跳转、全局的消息提示、页面加载动画的显隐等等。-
- API调用:这一类主要用于处理组件与服务端的交互,也就是服务端api接口的调用。
事件的定义
系统动作和API调用的定义相对比较简单,我们可以在vue
组件的methods
中进行方法的定义,例如我们可以定义一个request
方法用于api
的调用,request
中调用了我们使用axios
封装好的统一的请求方法,request
方法支持传入api
的url
、method
、api
参数等信息。这两类事件为全局事件,我们可以将这些方法放到mixins
中,然后在各个组件中进行引用。
而对于组件方法,我们需要将组件暴露的方法定义在各个组件的methods
中,并在组件加载时进行方法的监听。
window.vm.$on(`${id}-${methodName}`, params => {
// TOD