关于vue中proxy代理的一些理解

9 篇文章 1 订阅
6 篇文章 0 订阅

vue中proxy代理的理解

今天开发的时候 意外发现对vue的代理有了新的理解,以前都是很模糊的状态,先看图吧。
在这里插入图片描述
1、proxy里面是个大对象,如果有多个代理,直接在后面加子对象,实际开发中可能不止接口代理还有图片上传下载代理。
2、整个代理流程如何?
①首先得知道什么是代理,为什么需要代理?
代理:顾名思义就是代替别人做某事,到开发中也是这样,因为本地开发时基于node服务器进行开发,是不能直接请求后端的接口,一旦直接请求会报跨域错误,(不信可以试试把url直接写成后端地址,这时就会报错)如果这样的话,那如果知道后端地址,任何一台电脑都可访问了,所以处于各种考虑,禁止本地直接发起请求,必须要让中间一个人代替你去完成,这时候就诞生了代理。
②流程:
‘/api’:他是指遇到这个字符开头的话,在这个字符前面加上target里面的ip或者域名。
比如:/api,前的localhost:9999变成target的内容
完整的路径变成了http:xxx/xxx/api/manager/manager
但是有个问题,实际接口当中没有这个api,所以下面的pathwrite重写就解决这个问题的。他识别到api开头就会把/api重写成空,那就是不存在这个/apil了,完整的路径又变成:http:xxx/xxx/manager/manager
在这里插入图片描述
在这里插入图片描述
这里有个小小的问题(如图):实际开发中我们会发现有的人target域名后携带/,然后重写的时候也会有个/,按照上述转换的话就会多出斜杠,首先这个理解没错的,但实际上vue的代理中间件会自动处理成合规合法的地址,所以加不加都行。
在这里插入图片描述
鉴于文字太麻烦,我把流程写在图上吧
在这里插入图片描述

  • 7
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
你好!关于"vue3proxy结合reflect"的问题,我理解你可能想了解如何在Vue 3使用Proxy与Reflect结合起来。Vue 3是一个流行的JavaScript框架,而Proxy和Reflect则是ES6新增的特性。 在Vue 3,可以使用Proxy对象来代理Vue实例,以便捕获对数据的访问和修改。Proxy对象可以拦截并处理对Vue实例的操作,比如读取、设置和删除属性等。而Reflect对象提供了一组用于操作对象的方法,比如Reflect.get()、Reflect.set()和Reflect.deleteProperty()等。 结合使用Proxy和Reflect可以提供更灵活的控制和监控能力。你可以通过在Vue实例上创建一个代理对象,来拦截对数据的访问和修改,并在代理处理器使用Reflect方法来操作实际的数据。这样可以轻松地实现对数据的拦截、校验、代理等功能。 下面是一个简单的示例代码,展示了如何在Vue 3使用Proxy和Reflect结合起来: ```javascript const data = { message: 'Hello, Vue!', }; const proxy = new Proxy(data, { get(target, key) { console.log('Getting ' + key); return Reflect.get(target, key); }, set(target, key, value) { console.log('Setting ' + key + ' to ' + value); return Reflect.set(target, key, value); }, }); // 创建Vue应用 const app = Vue.createApp({ data() { return proxy; // 使用代理对象 }, }); app.mount('#app'); ``` 在上面的代码,我们创建了一个名为data的普通对象,并使用Proxy对象创建了一个代理对象proxy。在代理对象的get和set处理器,我们分别使用Reflect.get和Reflect.set来操作实际的数据。这样,当我们通过Vue实例访问或修改数据时,会触发代理处理器,并通过Reflect方法操作实际的数据。 希望这个例子能帮助到你,如果还有其他问题,请随时提问!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值