我想知道为什么我们用大写的方式编写突变,动作和getter的函数名?这个惯例来自哪里?
export default {
SOME_MUTATION (state, payload) {
},
ANOTHER_MUTATION (state, payload) {
},
}
答案 0 :(得分:7)
以全部大写形式写出常量是long standing coding style。
来自Vuex documentation:
这是一种常见的模式,可以将常量用于突变类型 各种Flux实现。这允许代码利用 像linters这样的工具,并将所有常量放在一个文件中 允许您的协作者一目了然地查看哪些突变 可以在整个应用程序中使用
因此,它实际上只是遵循了大部分以大写命名常量的悠久传统。这不是必需的。
是否使用常量在很大程度上是一种偏好 - 它对于许多开发人员的大型项目很有帮助,但如果你不喜欢它们,它是完全可选的
答案 1 :(得分:7)
Bert接受的答案有点误导。传统上,常量变量用大写字母表示,但是在问题中使用常量的方式并不能使其成为常量。
这允许代码利用像短绒棉一样的工具
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)
)来获得所有好处。