关于从后端获取数据的函数命名

这套方案:
如果这个组件内,没有其他获取数据的情况,
命名成 getData() {} 可否?
还是需要getNewsList() {}, 哪种方案更好?

在接口文件中,
如何在名字上区分,是否是一个axios请求,有没有区分的必要性?
比如说,

function getData() {
    return request({
    });
}
阅读 1.9k
4 个回答

正常应该不做区分,只会以获取数据类型命名函数,比如获取的是用户信息,那我会命名为getUserInfo,getData这种就太笼统了

getData() 是个计算属性就更好了。

整个应用都是基于数据来显示,动态修改数据会导致页面变化。

这样也就忽略和异步和同步,异步只不过是数据没回来。


回到题目中,getData 这种命名没啥问题。我觉得还可以,比如说你在 api/news.js 中大概率也能想到你是在拿数据。

getData({id})getData(id) 这样也能想到你是查单条。


当然一般我都是和接口搞成一样的名字。

单纯讨论这个问题没什么意义的,和在不在组件内也没关系。其实真的是组件内专用你直接request就行了,还封装函数干什么呢。

对于后端请求怎么命名,原则上还是任何人都能看懂就好。比如用了namespace和不用肯定不一样。
就像王兰花说的,getUserInfo很好,但是用了namespace的话,UserInfo.getById明显更好。

已参与了 SegmentFault 思否社区 10 周年「问答」打卡 ,欢迎正在阅读的你也加入。

在一定场景下,比如当前做的就是新闻列表页面,那么这个页面的主体就是新闻 (news),意义不明确的命名都可以往这上面去靠,所以 getData 在新闻页面场景下,一般会被认为是 getNewsList。如果是在某条新闻呈现的页面,getData 通常会被认为是 getNewsDetail/getNewsData。所以,在特定场景下使用一些通用名称是可以的,但于准确的名称相比,由于需要代入场景,理解成本会稍高一点(如果有人纯粹看代码细节不看整体,就有可能会搞不明白这些通用名称是啥)。

此外,关于 getData,我还有一点小建议。在英文中 get 和 fetch 都有获取的意思,但是 fetch 还有“去 ... 拿来”的意思在里面,所以去后端拿数据用 fetch 或 require(请求)更准确一些。当然 get 也是可以用的,意思并没有太大的差异,不过 get 可以规划来用于本地数据的获取,比如说拿到列表之后,需要从中取出其中某一项,就可以用 get(i) —— 不过注意,如果是按一定条件获取,那就不是 get 了,因为含有搜索的意思在里面,应该用 find ……

综上,具体取什么名字合适,

  1. 看场景,也就是语义上下文
  2. 取名实际是中译英的一个过程,所以需要准确理解英文思想,准确翻译。

已参与了 SegmentFault 思否社区 10 周年「问答」打卡 ,欢迎正在阅读的你也加入。
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题