Ao fazermos o :desabilitado estamos meio que "plugando" o conteúdo passado (cronometroRodando) ao componente botão. Precisamos dizer ao componente botão que o valor de cronometroRodando, que é um data
do Temporizador, precisa reconhecer ("ouvir") esse data
que afinal é manipulado/mudado pelo Temporizador, ou seja, estamos meio plugando/ligando "por uma tomada" esse data
cronometroRodando lá no :disabled
do componente Botão, em <button class="button" @click="clique" v-bind:disabled="desabilitado">
.
Em suma, estamos dizendo, "olha, componente Botão... a sua propriedade desabilitado
eu quero que receba o conteúdo de cronometroRodando
que estamos manipulado aqui no Temporizador, logo, preciso que você fique 'ouvindo/observando' esse dado e faça o que tenha que fazer quando ele mudar hein, então vou plugar o cronometroRodando
em você, ok? Vou fazer o bind aqui do desabilitado
, vou ligá-lo na tomada pra quando o Temporizador mexer no cronometroRodando
, você agir conforme ele mudar."
Eu chamei de "dinâmico" o data
cronometroRodando do Temporizador porque foi o primeiro termo q veio na cabeça rsrs. É que ele é manipuado pelo componente Temporizador, e o Botão precisa "ouvir" isso, caso o valor dele seja mudado.
O valores "fas fa-play"
e "play"
(cod abaixo) são simplemesmente atribuídos diretamente às propriedade icone e texto do Botão, respectivamente. Esses valores já são passados de forma "fixa" lá pro Botão, então não faz sentido o Botão precisar ficar "ouvindo" esses dados, concorda? Nesses casos, o Botão só "cospe" o conteúdo do texto
no <span>
e a gente precisa fazer o bind no class no Botão (<i v-bind:class="icone"></i>
), para que o estilo enxergue esse conteúdo da propriedade icone
("class, isso aqui é um estilo que vc acabou de receber, ok?")
<Botao @clicado="iniciar" icone="fas fa-play" texto="play" :desabilitado="cronometroRodando" />
Tem um outro exemplo de binding legal aqui, pra entender ainda mais (o link do formulário é mudado automaticamente conforme a edição do input text, sendo feito por bind, ou seja, a url do href fica "ouvindo/observando" o que tá sendo mudado lá no input text):
https://vueschool.io/lessons/vuejs-attribute-bindings
Aqui também reforça o conhecimento que tivemos na Alura, mais precisamente o vídeo 3, "Attribute Binding" de 3:48 min:
https://www.vuemastery.com/courses/intro-to-vue-3/intro-to-vue3/
Espero ter ajudado. E se ainda tiver dúvida, postar ae. :)