视频中的str、state、store是固定写法吗?
来源:3-8 VueX 的语法详解(3)
leepulse
2021-08-28 23:11:06
问题一:在第一步派发action,里面有change属性名和hello world的值,在actions里的change方法内接收的第2个参数,老师用str来接收hello world的值,这个str是固定写法还是自定义命名?
this.$store.dispatch('change', 'hello world')
问题二:在第二步中actions里的change方法内接收的第1个参数,老师传入了store,这是为什么?也是固定写法?
actions: {
change(store, str) {
setTimeout(() => {
store.commit('change', str)
}, 2000)
}
}
问题三: 在第四步mutations执行change方法时,再次传入两个参数,第一个是state,第二个是str,这个时候又为什么传入的参数确实state?为什么跟第二步传入的第一个参数不同?
mutations: {
change(state, str) {
state.name = str
}
}
2回答
同学你好,对于你的问题解答如下:
1、str是自定义命名的。如果使用dispatch触发对应的actions时 ,没有传递参数,那么就不用在actions中定义形参来接收传递过来的参数。示例:

不接受参数也是可以的,控制台正常输出内容,如下:

2、因为语法中规定的,actions中的方法中第一个参数表示store,第二个参数表示传递过来的数据,所以这种写法是固定的,但是其中的参数名是自定义的,可以任意修改,只要符合命名规范即可。示例:

改变参数名后,代码可以正常运行,可以通过输出查看结果帮助自己更好的理解,示例:

3、因为语法中规定的,mutation中的方法,第一个参数表示state,第二个参数表示传递过来的数据,所以这种写法是固定,但是其中的参数名自定义的,可以任意修改,只要符合命名规范即可。示例:

因为两个change方法定义的位置不同,一个是在actions中定义的,一个是在mutaions中定义的,语法中规定,actions中定义的第一个参数接受的是store, mutations中定义的方法第一个参数接收的是state。参数名都是可以自定义的,讲师中分别定义为store和state,是为了做到见名知意,便于代码阅读。
祝学习愉快~
好帮手慕慕子
2021-08-29
同学你好,对于同学说的情况,老师也会记录下来并反馈给制作课程的相关人员,以后在录制课程中争取给同学们创造更好的学习体验。
学习过程中遇到疑问可以在问答区提问,老师们一定会帮助同学解决的,课程面对的更多是零基础小白用户,更大的作用还是领同学们入门,如果需要更深入的研究,同学可以结合官网更进一步学习。
祝学习愉快~
相似问题