Alpine.js - continuar namorando

Este é o segundo artigo sobre a promissora estrutura Alpine.js .
O primeiro pode ser lido aqui:
Alpine.js - uma estrutura leve com sintaxe conveniente


Continuamos familiarizando a comunidade com esta ferramenta maravilhosa.
O código completo da lição está aqui .


X-SHOW e X-CLOAK


<div x-data="{ show: false }">
  <button x-on:click="show= ! show" x-text="show ? '' : '' ">
  </button>
  <p x-show="show" x-cloak>!</p>
</div>

No exemplo acima, analisaremos duas novas diretivas ao mesmo tempo. O X-show, embora similar em uso ao x-if, não deve ser confundido. O X-show não altera a árvore da página, mas controla apenas a propriedade de exibição do elemento. Ou seja, o item será renderizado, mas não mostrado.


X-cloak é uma diretiva que é excluída imediatamente após o início do script. Parece, que bom é isso? Considere a aplicação prática. Quando executamos o código acima, por um momento, vemos um elemento com o texto "Olá!", Apesar do valor falso na diretiva x-show. Aqui x-cloak vem em nosso auxílio, você só precisa escrever para ele o seguinte estilo:


[x-cloak] { 
  display: none;
}

Agora o elemento ficará oculto até o script iniciar.


O surgimento e o desaparecimento repentinos de um elemento não são muito óbvios; portanto, o modificador de transição é usado para animar esses eventos.


X-SHOW.TRANSITION


Melhoraremos o código anterior com a ajuda de modificadores:


<div x-data="{ show: false }">
  <button x-on:click="show= ! show" x-text="show ? '': '' ">
  </button>
  <p x-show="show"> NO TRANSITION</p>
  <p x-show.transition="show">TRANSITION</p>
  <p x-show.transition.in.duration.1000ms="show">TRANSITION IN</p>
  <p x-show.transition.out.duration.1000ms="show">TRANSITION OUT</p>
  <p x-show.transition.scale.05.duration.1000ms="show">TRANSITION Scale</p>
  <p x-show.transition.opacity.in.duration.1000ms="show">TRANSITION Opacity</p>
  <p x-show.transition.in.duration.1000ms.out.duration.500ms="show">TRANSITION IN Duration</p>
</div>

1 .in.duration.1000ms


transition ( ) opacity scale ( scale: 0.95), cubic-bezier(0.4, 0.0, 0.2, 1), 150 75 . , .

:


  • .in ;
  • .out — ;
  • .scale — ;
  • .opacity — ;
  • .duration .

x-if x-transition. x-show. . .


X-INIT


X-init — , , . created Vue.js. x-data. :



<div
  x-data="{ posts: [] }"
  x-init="
    fetch('https://jsonplaceholder.typicode.com/albums/1/photos')
      .then((response) => {
        return response.json();
      })
      .then((data) => {
        posts = data
      });
    "
>
  <template x-for="post in posts" :key="post.id">
    <div class="post">
      <h1 x-text="post.title"></h1>
      <img :src="post.thumbnailUrl" :alt="post.title" />
    </div>
  </template>
  <hr/>
</div>

x-data posts, . x-init fetch json- . x-for «» .


X-REF $REFS


Esta diretiva fornece acesso ao elemento desejado em qualquer parte da página, inclusive fora do componente. Todos os links ficam disponíveis através do campo global $ refs. Vamos demonstrar esse recurso usando um exemplo:


<div x-data="{ }">
  <input type="text" x-ref="myInput"/>
  <button x-on:click="alert($refs.myInput.value)">Alert</button>
<hr />
</div>

O texto inserido na entrada com o atributo x-ref = "myInput" estará disponível em $ refs.myInput.value


Isso conclui a lição de hoje. Todos os exemplos da lição estão aqui .
Todos os projetos de sucesso e até breve!


All Articles