javascript - Vuex Store 使用 'this' 访问状态
问题描述
我目前正在学习 Vuex 并阅读Vue 官方文档的这一部分。我想知道是否有特殊原因为什么我们会使用state
参数而不是仅使用this
?我测试了它是否会起作用this
。
Vue 示例
const store = new Vuex.Store({
state: {
count: 1
},
mutations: {
increment (state) {
state.count++
}
}
})
我的例子
const store = new Vuex.Store({
state: {
count: 1
},
mutations: {
increment () {
this.count++;
}
}
})
解决方案
Vuex store 实例不是一个拥有自己的普通对象this
,它可以被看作是提供一些输入/输出的黑盒,它将状态作为参数传递,然后在其逻辑(模式)内部根据您的突变更新状态, 在this
这里可用:
mutations: {
increment () {
this.count++;
}
}
它指的是全局window
对象。
根据@Spinx 评论this
指的是版本 3 及更高版本中的 vuex 实例,我发现@Matt 所说的是一个很好的注释:
IMO 这是一个很好的例子,说明为什么你应该使用显式参数,因为你不知道你的函数是如何绑定的__Matt
推荐阅读
- python - 使用 Python 进行复杂词搜索多个文件
- conv-neural-network - 我可以同时使用扩张卷积和最大池化层吗?
- angular - 角材料
刷新页面时隐藏 - node.js - 无法等待 fs.appendFile
- javascript - node.js 将 json 附加到未使用数组的 JSON 文件中
- typescript - 使接口的一部分不是可选的
- python - 为什么某些关键输入在此示例中不起作用?(游戏)
- reactjs - 如何在本机反应中禁用firebase电话号码身份验证reCapcha?
- javascript - 执行时不要再次执行函数
- excel - 复制到另一个工作表中动态创建的行