《记账页面-数字盘组件》

217 阅读1分钟

需求1:

最基本的需求就是点击哪个数字,就显示相应的内容。

因为有小数点,所以展示内容是字符串类型比较好,一开始是个空字符串。在每一个button上添加点击事件,output+=1

但是要重复写很多次,所以把相同的代码封装成一个函数,然后把1,2,3等作为参数传进去。@click调用该函数。

但是这样写还要重复传参数,能不能不传参数呢?不传参数怎么知道按下的是什么数字呢?

如果没传参数,vue会自动给传一个事件对象event

event.target.textContent就是button标签里的文本,1,2,3等。

但是TS提示event.target可能是空,所以强制类型转换

inputContent(event: MouseEvent) {
            const button=(event.target as HTMLButtonElement)
            this.output+=button.textContent;
}

把event.target强制转换成 HTMLButtonElement,button标签就不能是空了。

这里传的event的类型不是点击事件,准确来说是鼠标事件。

现在点击后就可以直接调用该函数,不需要传1,2,3等参数了。