这个地方的change后面跟的参数,我改成其他数字也可以获取到,但是这个数字到底是什么作用

来源:4-3 父子组件间的数据传递

Ting111

2021-01-31 16:17:14

http://img.mukewang.com/climg/601665fd0919bd3720750682.jpg

我把这个数字改成5 后,

 plus:function(){

    this.num+=1;

    this.$emit('change',5)

  }


-------------

handleChange:function(f){

     

     this.total+=f;



    }


第一个是total里面获取到的好像是字符串,不知道是哪里写错了,第二个就是,这个total每次都只是在加5,改成1后也只是在加1并不能真的计算conte里的数字,因为这个计算器到后来计算的并不是单纯的+1,而是5+5这种差值大于1的算法


写回答

3回答

好帮手慕久久

2021-01-31

同学你好,解答如下:

1、total的值是字符串,可能与如下几个位置有关系:

http://img.mukewang.com/climg/60167741090319f704430168.jpg

http://img.mukewang.com/climg/6016774d09c5fc9305240163.jpg

建议同学把全部的代码粘贴出来,老师再为你解答。

2、total的值,与两个counter组件中的值没关系。total与counter组件的关系是,只要点击counter,就会让total的值加5。如果把数字改成2,则每次点击counter,会让total加2:

http://img.mukewang.com/climg/601677f909a34f8f08460422.jpg

即change方法后面的参数,是子组件传给父组件的,父组件可以在相应的方法中,接收到这个参数。子组件传出来什么,父组件就能接收到什么。这个数字,只是用来模拟子组件可以给父组件传值。

父组件接收到这个参数后,可以利用这个参数进行一系列计算,“  this.total += f”这句代码,就是在模拟父组件操作子组件传过来的参数。

3、由于total会参与到加法运算中,如果将其设置成空字符串后,加运算时,会进行拼接,得到字符串。

建议同学在加运算时,将其转成数字,这样就不会当成字符串来计算了,如下:

http://img.mukewang.com/climg/6016798a099290bc06450408.jpg

4、total的值与counter中的数字无关,它们彼此各自计算各自的。每点击一次counter,counter自己会加2,而total自己会加5:

http://img.mukewang.com/climg/60167a0b09ea305707970776.jpg

祝学习愉快!

0

Ting111

提问者

2021-01-31

http://img.mukewang.com/climg/601669520981e6f706120217.jpg

然后这个total如果我想让初始值是空的话要怎么写,我写成这种样式,计算的时候就只能是字符串了

0

Ting111

提问者

2021-01-31

我又看了一下视频里面的计算,这个计算器其实并不是真的凭空计算num1+num2的数值而是只能在一开始的时候计算1+1+1+1+1+1+1+1这种累积的算法对吗,所以每次加上单个项里改变的步长就形成了一个计算器的假象?

0

0 学习 · 10739 问题

查看课程