Vuex:为啥我们用大写字母编写突变、动作和吸气剂?
Posted
技术标签:
【中文标题】Vuex:为啥我们用大写字母编写突变、动作和吸气剂?【英文标题】:Vuex: Why do we write mutations, actions and getters in uppercase?Vuex:为什么我们用大写字母编写突变、动作和吸气剂? 【发布时间】:2017-11-18 05:02:58 【问题描述】:我想知道为什么我们把突变、动作和吸气剂的函数名写成大写?这个约定从何而来?
export default
SOME_MUTATION (state, payload)
,
ANOTHER_MUTATION (state, payload)
,
【问题讨论】:
【参考方案1】:Bert 接受的答案有点误导。常量变量传统上全部大写,但它在问题中的使用方式并不能使其成为常量。
这允许代码利用像 linter 这样的工具
Vue.js 官方文档recommends using all caps,但作为附加文件中的变量。这使得在其他文件中需要可用的函数名称并使用自动完成成为可能。
mutation-types.js:
export const SOME_MUTATION = 'SOME_MUTATION'
store.js:
import Vuex from 'vuex'
import SOME_MUTATION from './mutation-types'
const store = new Vuex.Store(
state: ... ,
mutations:
// we can use the ES2015 computed property name feature
// to use a constant as the function name
[SOME_MUTATION] (state)
// mutate state
)
请注意此处不同的书写风格(计算属性名称带方括号):
[SOME_MUTATION] (state)
如果你只是把函数名全部写成大写(即SOME_MUTATION(state)
),唯一的好处就是视觉上的,将vuex函数与其他函数分开,但在我看来这没有多大意义。坚持使用计算属性名称 ([SOME_MUTATION] (state)
) 以获得所有好处。
【讨论】:
【参考方案2】:long standing coding style 常量全部大写。
来自 Vuex documentation:
在突变类型中使用常量是一种常见的模式 各种通量实现。这允许代码利用 像 linter 这样的工具,并将所有常量放在一个文件中 让您的合作者可以一目了然地了解哪些突变 在整个应用程序中都是可能的
因此,它实际上只是遵循了大部分以大写命名常量的长期传统。这不是必需的。
是否使用常量在很大程度上是一种偏好——它在有许多开发人员的大型项目中很有帮助,但如果你不喜欢它们,它完全是可选的
【讨论】:
感谢您的详细解释。 这个答案实际上具有误导性,如下面的@Pwdr 答案所述 @pawel 帮助我理解。您是否认为这具有误导性,因为您认为答案是输入全部大写的名称会使它们保持不变? @Bert 我相信 Vuex 文档的附加部分并不表示突变函数名称应该用大写字母书写。实际上,您链接的页面上的示例显示了以小写字母编写的突变名称,例如'增量'。确实,用大写字母编写常量是一种流行的编码风格,但那是另一回事了。我相信对 OP 问题的正确答案是:“我们没有用大写字母编写突变函数名称”。 @pawel 我明白你的意思。我以不同的方式阅读了这个问题。具体来说,问题是“这个约定从何而来?”而不是“我应该这样做吗?”。我认为 pwdr 的答案更多地是将名称定义为常量的优点,它们是否大写并不重要。以上是关于Vuex:为啥我们用大写字母编写突变、动作和吸气剂?的主要内容,如果未能解决你的问题,请参考以下文章