bmfe / eros

📱 一套 Vue 代码,两端原生应用 ,或许可以叫我 weex-native。
https://bmfe.github.io/eros-docs
MIT License
2.01k stars 287 forks source link

想要将公共的数据请求放在外部,而不是每个页面都去请求,请问应该怎么做? #346

Closed theladderofsuccess closed 5 years ago

theladderofsuccess commented 5 years ago

Your questions.

-

Environment.

com req

What do you think may be caused by the analysis of the problem.

Reappearance of the problem (It's best to have a screenshot).

PerseveranceZ commented 5 years ago

直接在 config/index 里面 用 Vue.prototype.$fetch 发请求

theladderofsuccess commented 5 years ago

@PerseveranceZ 大佬能具体说明一下吗?我的写法肯定没对,不知道怎么写了 Vue.prototype.$getApi = (mineName, pageName, key, name) => { let params = { mineName: mineName, pageName: pageName, key: key, name: name }; return this.$fetch({ name: "COMMON.getInfo", method: "GET", data: params, header: { caller: "WeBuild" } }).then(resData => { console.log(resData); }); }; 项目要求的数据也很多,api也不同,总不能一个api写一个吧? 而且this始终是undefined,换成stream或bmAxios也不行。头疼好久了。看到之前有篇issue有提过类似的问题,但也没解决。。。

theladderofsuccess commented 5 years ago

参考解决办法:将API文件夹写在pages文件夹内通过export default暴露出来,js文件中引入js文件,其内容一定要是”字符串“:”字符串“的形式,否则不识别。别问为什么,问就是不知道!

PerseveranceZ commented 5 years ago

其实你可以使用 js 入口方式 用全局 mixins来做这件事 js 入口 参考如下方式 : https://github.com/karynsong/weex-eros/tree/a65fe9a9f12cc19ec4d6b64270d2705f66ac2cf1/fe/src/js/pages/demo