视频中的str、state、store是固定写法吗?

视频中的str、state、store是固定写法吗?

问题一:在第一步派发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中定义形参来接收传递过来的参数。示例:

http://img1.sycdn.imooc.com//climg/612af66e09c800e113620496.jpg

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

http://img1.sycdn.imooc.com//climg/612af67d091b4daf09970266.jpg


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

http://img1.sycdn.imooc.com//climg/612af738098fcfef16830422.jpg

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

http://img1.sycdn.imooc.com//climg/612af77009321bc417040338.jpg


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

http://img1.sycdn.imooc.com//climg/612af534092d1b6807810276.jpg

因为两个change方法定义的位置不同,一个是在actions中定义的,一个是在mutaions中定义的,语法中规定,actions中定义的第一个参数接受的是store, mutations中定义的方法第一个参数接收的是state。参数名都是可以自定义的,讲师中分别定义为store和state,是为了做到见名知意,便于代码阅读。

祝学习愉快~

  • leepulse 提问者 #1

    现在明白了,老师在视频里有好多vue里面固定写法,却在视频里没有明确说明,我相信很多学员因为这个学得不够精

    2021-08-29 11:39:02
好帮手慕慕子 2021-08-29 16:26:35

同学你好,对于同学说的情况,老师也会记录下来并反馈给制作课程的相关人员,以后在录制课程中争取给同学们创造更好的学习体验。

学习过程中遇到疑问可以在问答区提问,老师们一定会帮助同学解决的,课程面对的更多是零基础小白用户,更大的作用还是领同学们入门,如果需要更深入的研究,同学可以结合官网更进一步学习。


祝学习愉快~

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师