# Alpine.js ![npm bundle size](https://img.shields.io/bundlephobia/minzip/alpinejs) ![npm version](https://img.shields.io/npm/v/alpinejs) [![Chat](https://img.shields.io/badge/chat-on%20discord-7289da.svg?sanitize=true)](https://alpinejs.codewithhugo.com/chat/) O Alpine.js oferece a natureza reativa e declarativa de grandes estruturas, como Vue ou React, a um custo muito menor. Podemos manter a DOM e aperfeiçoar o comportamento como acharmos melhor. Pensem nisso como o [Tailwind](https://tailwindcss.com/) para JavaScript. > Nota: A sintaxe desta ferramenta é quase totalmente inspirada no [Vue](https://vuejs.org/) (e por extensão [Angular](https://angularjs.org/)). Estou eternamente agradecido pelo presente que estas são para a web. ## Instalação **Via CDN:** Adicionem o seguinte script no final da seção ``. ```html ``` E é isso. Ele vai se inicializar. Para ambiente de produção, é recomendado fixar o número da versão específico no link para evitar problemas inesperadas das versões mais recentes. Por exemplo, para usar a versão `2.8.2`: ```html ``` **Via npm:** Instale o pacote pelo npm. ```js npm i alpinejs ``` Incluir no script. ```js import 'alpinejs'; ``` **Para suportar IE11** Usar os seguintes scripts. ```html ``` O padrão acima é o [padrão de módulo/nomodule](https://philipwalton.com/articles/deploying-es2015-code-in-production-today/) que resulta num pacote moderno carregado automaticamente em browsers modernos e o pacote IE11 carregado automaticamente no IE11 e em outros browsers herdados. ## Usar _Dropdown/Modal_ ```html
``` _Tabs_ ```html
Tab Foo
Tab Bar
``` Podemos até usá-lo para coisas não triviais: _Pré pedido de conteudo para o HTML da dropdown ao passar com o rato_. ```html
Carregando Spinner...
``` ## Aprenda Existem 14 diretrizes disponíveis: | Directiva | Descrição | | ------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | | [`x-data`](#x-data) | Declara um novo scope do componente. | | [`x-init`](#x-init) | Executa uma expressão quando um componente é inicializado. | | [`x-show`](#x-show) | Alterna `display: none;` no elemento dependendo da expressão (verdadeiro ou falso). | | [`x-bind`](#x-bind) | Define o valor de um atributo para o resultado de uma expressão JS. | | [`x-on`](#x-on) | Anexa um evento de escuta ao elemento. Executa a expressão JS quando emitida. | | [`x-model`](#x-model) | Adiciona "ligação de dados bidirecional" a um elemento. Mantém o elemento de entrada sincronizado com os dados do componente. | | [`x-text`](#x-text) | Funciona da mesma forma que o `x-bind`, mas atualiza o `innerText` de um elemento. | | [`x-html`](#x-html) | Funciona de maneira semelhante ao `x-bind`, mas atualiza o `innerHTML` de um elemento. | | [`x-ref`](#x-ref) | Maneira conveniente de recuperar elementos DOM fora do seu componente. | | [`x-if`](#x-if) | Remove um elemento completamente na DOM. Precisa de usar uma tag `