装饰器createDecorator使用

createDecorator(装饰器)可以将一些通用的东西注入到指定位置,
以接口的公共原子参数为例,创建装饰器如下:

import { serviceHocs } from 'axios-service'
const { setDataDecorate, setParamsDecorate } = serviceHocs
import { createDecorator } from 'vue-class-component'

const haveParams = ['a', 'b', 'c'] // 添加公共原子参数
const toObjectParams = fn() // fn获取url中haveParams中每个元素对应的值,并以key-value的形式写入{},具体过程-略

const getParams = params => { // 定义注入事件
	return createDecorator(
		compose( // 合成函数(考虑到get和post,参数注入的位置不同)
			setDataDecorate(params) // 将参数固定到请求的body中(post)
			setParamsDecorate(params) // 将参数固定到请求的query string中(get、post)
		)
	)
}

export const autoParams = getParams(toObjectParams) // 导出装饰器


// 具体使用
import { autoParams } from 'xxxxxx'

class Apis {
	@autoParams // 调用装饰器,此时参数a、b、c及参数值将会自动注入到接口入参中
	getInfo = post('/api/getInfoCustom')
}

https://www.npmjs.com/package/axios-service

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值