在Vue JS中将API端点存储在何处以及如何存储?

Nik*_*ili 3 http web-frontend vue.js vuejs2

我正在使用vue-cli前端和后端,并且lumen对在vue中存储API根URL和端点的最佳实践感到好奇吗?

现在,我constants.jssrc目录中的文件中,API的根URL和端点如下所示:

const BASE_URL = "http://localhost:8000"

export const AddLanguge = BASE_URL + "/api/languages"
Run Code Online (Sandbox Code Playgroud)

例如,当我需要在组件中实现添加语言功能时,我会从constants.js导入所需的API端点,如下所示:

import { AddLanguge } from '@/constants'
Run Code Online (Sandbox Code Playgroud)

然后使用axios发出请求

this.$http.post(AddLanguge, params).then(response => {
   if (response.status == 200) {
       this.addLanguage(response.data.data)
   } else {
       this.setHttpResponseDialog(response)
   }
}).catch(er => {
       this.setHttpResponseDialog("Error")
})
Run Code Online (Sandbox Code Playgroud)

我搜索了这个问题,但没有明确的答案说:没关系

其他人说:必须在dev.env.js和中存储这种数据是很糟糕的prod.env.js,最重要的事实是我不明白他们为什么这么说,为什么将这些数据保存在.env文件中很重要?也许还有其他更好的方法?

你们能否提供正确的答案并给出正确的解释,或者如果没有正确的答案,并且取决于情况,我如何才能确定哪种方式适合我的情况?

art*_*oju 6

建议使用.env文件,因为根据环境的不同,端点可能有所不同,也就是说,您是使用“ npm run serve”运行开发服务器还是使用“ npm run build”进行生产。使用.env配置文件,它们成为环境变量,您无需将其硬编码到应用程序中,这只是最实际的事情。使用Vue CLI 3,您将拥有

//.env.development 
VUE_APP_BASEURL = "http://localhost:8000"
Run Code Online (Sandbox Code Playgroud)

在您的应用中,您可以使用它。

process.env.VUE_APP_BASEURL
Run Code Online (Sandbox Code Playgroud)

我所要做的只是将基数放在一个变量中,然后连接其余部分。

const BASE_URL = process.env.VUE_APP_BASEURL

this.$http.post(BASE_URL + '/api/languages/', params)
Run Code Online (Sandbox Code Playgroud)