Para muitos desenvolvedores e engenheiros de software, uma ferramenta de desenvolvimento multifuncional é algo pelo qual se espera. WMR é uma ferramenta de desenvolvimento tudo-em-um para aplicativos da web modernos desenvolvidos pela Equipe Preact , com um tamanho muito pequeno e sem dependências.
O WMR foi desenvolvido com recursos que permitirão aos desenvolvedores construir aplicativos da web do desenvolvimento à produção. Comparado a muitas outras ferramentas de desenvolvimento individuais, o WMR se destaca pelas seguintes vantagens:
Desempenho
WMR é inicializado sem pontos de entrada ou páginas para configurar, ele vem apenas com arquivos HTML que contêm scripts com módulos de tipo, por exemplo,
Importações seguras e agrupamento inteligente para dependências
WMR permite importar pacotes npm com segurança sem instalação, com isso você pode importar um pacote npm sem executar npm install , que instalará dependências adicionais.
O WMR sai da caixa com a capacidade de agrupar suas dependências de npm sempre que você quiser e também armazena em cache seu histórico em sua máquina de construção.
Suporte para HTTP2
WMR vem embutido com suporte para HTTP2 nos modos de desenvolvimento e produção.
Suporte para plug-ins de Rollup
WMR fornece suporte para Plug-ins de rollup , mesmo quando não é usado no desenvolvimento.
Rollup é um empacotador de módulo para JavaScript que compila trechos de código para serem mais complexos, semelhantes a uma biblioteca.
Primeiros passos com WMR
Nesta seção, vamos construir um aplicativo de notas. Os usuários poderão escrever, visualizar e também excluir notas que escreveram.
Semelhante a uma série de estruturas SSR, o WMR nos permite construir nossos componentes e renderizá-los como páginas. Aproveitando isso, estaremos construindo nosso aplicativo como uma única página dentro de um diretório app e iremos renderizar o aplicativo no arquivo index.js do nosso projeto. Primeiro, vamos inicializar um novo projeto WMR usando o bloco de código abaixo.
Para inicializar um projeto usando WMR, primeiro você precisa instalar o pacote usando um gerenciador de pacotes.
Usando npm:
npm init wmr wmr-notes-app
ou usando fio:
yarn create wmr wmr-notes-app
O comando acima inicializa um projeto WMR vazio, no nosso caso, o primeiro comando cria um projeto WMR com wmr-notes-app como o nome do projeto, ele pode ser substituído por qualquer nome que você escolher usar. A seguir, vamos instalar um pacote para nossos ícones:
npm i react-icons
O pacote acima será usado para adicionar ícones ao nosso aplicativo.
Em seguida, mude para o diretório do projeto e inicie o servidor de desenvolvimento executando:
cd wmr-notes-app && npm start
O comando inicia um servidor em http://localhost: 8080 , se você abrir o endereço em sua máquina local, ele exibirá um site semelhante a este:
A seguir, vamos reestruturar a pasta do aplicativo para ficar assim:
Para fazer isso, nas public/pages , vamos excluir os seguintes arquivos e pastas, os diretórios home e about .
Esses arquivos são usados principalmente para aplicativos que exigem uma página home e sobre . Feito isso, vamos começar a construir nosso aplicativo.
Construindo um aplicativo de notas
Começaremos criando uma nova pasta chamada app e dentro da pasta, criaremos um arquivo chamado index.js . Observe que o nome do arquivo pode ser o que você quiser, como você achar adequado.
A seguir, criamos um componente funcional chamado NoteApp com dois estados, um para criar uma nota e outro para exibir as notas atuais, o componente retornará um elemento h1 e um campo de entrada:
No bloco de código acima, primeiro importamos o gancho useState de preact/hooks , também importamos nosso ícone para delete e nossos estilos do arquivo module.css .
Em nosso componente NoteApp , primeiro, usando o gancho React useState , inicializamos um valor inicial para nossas notas e outro estado para lidar com nossa nota atual, nosso aplicativo , por enquanto, retorna um elemento de cabeçalho e uma div para nosso campo de entrada. Antes de atualizar nosso navegador, vamos escrever o estilo como o incluímos em nossas tags seção e div :
Nesta seção, escreveremos uma função que atuará como um backbone para adicionar notas ao nosso aplicativo, para isso inicializaremos uma função addNote que receberá um ID para nossas notas e defina-o como o estado de nosso aplicativo:
No código acima, inicializamos uma constante addNote que leva em nossas Notes e usando o método de array JavaScript nativo push , que recebe um ID e um parâmetro de nota para adicionar uma nova nota e defini-la como o estado atual de nosso aplicativo. O método push adiciona uma nova nota ao nosso array de notas e então retorna um novo comprimento do array. A seguir, escreveremos uma função para excluir notas de nosso aplicativo.
Exclusão e leitura de notas
Aqui, escreveremos uma função para excluir as notas que adicionamos ao nosso aplicativo, usaremos o método JavaScript nativo .filter para verificar se uma nota id é não é igual ao id da nota que queremos remover da matriz e, em seguida, retorna as novas notas na matriz, como este:
A seguir, escreveremos uma função para exibir nossas notas assim que forem adicionadas. Essa função também adicionará automaticamente um ícone de exclusão a cada nota assim que for adicionada à nossa lista de notas:
No bloco de código, inicializamos uma função extractNotes com o object.values método que retorna os valores de nosso array da mesma forma que é fornecido. Em seguida, mapeamos, retornando um li com um botão de exclusão e, em seguida, exibimos a nota retornada.
Para concluir isso, vamos adicionar estilos para nosso item de lista e nosso ícone de exclusão:
.noteItem { preenchimento: 16px; raio da borda: 3px; cor de fundo: # f2f9fb; box-shadow: 1px 1px 3px 1px #efefef; tamanho da fonte: 20px; largura máxima: 400px; margem: 10px automático;
}
.deleteIcon { preenchimento: 14px; cor de fundo: #eee; raio da borda: 3px; margem direita: 20px;
}
Se fizermos isso corretamente, nosso aplicativo deverá ser semelhante a este:
Aplicativo de notas finais
Para concluir nosso aplicativo, vamos terminar o último componente que renderiza nosso aplicativo, aqui terminaremos nosso campo de entrada e adicionaremos um botão para adicionar notas ao nosso aplicativo e, em seguida, renderizaremos as notas que adicionamos:
No bloco de código acima, estamos retornando um campo de entrada que leva em um evento onChange que define nossa nota atual para o valor de nosso campo de entrada. Também adicionamos um evento keypress que on key up adiciona o valor do nosso campo de entrada às nossas notas.
Em seguida, adicionamos um botão para inserir nossas notas em nosso aplicativo, depois disso, renderizamos as notas adicionadas. Para completar nosso aplicativo, vamos adicionar as propriedades CSS e, em seguida, mostrar a imagem de nosso aplicativo final:
.unstyled_list { estilo de lista: nenhum; preenchimento: 0;
} .notes_list_wrapper { raio da borda: 5px; preenchimento: 6px; largura máxima: 400px;
}
.botão { tamanho da fonte: 14px; borda: 1px sólido roxo; cor de fundo: palevioletrado; cor branca; raio da borda: 4px; preenchimento: 10px 34px; margem: 10px;
}
.button: hover { borda: 1px sólido roxo; cor de fundo: roxo;
}
@media (largura mínima: 768.11px) { .campo de entrada { borda: 1px azul sólido; preenchimento: 10px; tamanho da fonte: 21px; raio da borda: 4px; } .inputField: hover,.inputField: focus { esboço: nenhum! importante; sombra da caixa: nenhum! importante; borda: 1px verde sólido; }
}
Nosso aplicativo final deve ser parecido com isto:
Conclusão
Nesta postagem, aprendemos sobre o WMR, seus recursos e como usar o WMR para construir um aplicativo de notas, também vimos como usar o module.css para adicionar estilos ao nosso aplicativo. O código usado neste artigo pode ser encontrado em GitHub .
Reconhecidamente, este será um começo lento, mas o Google está lançando dois planos de fundo virtuais incrivelmente legais para o Google Meet no Android e no iOS que permitem aos usuários não apenas alterar seus Read more…
De acordo com o estudo mais recente conduzido pela Chainalysis, usuários involuntários gastaram cerca de US$ 4,6 bilhões em criptomoedas, adquirindo-as em esquemas fraudulentos no ano passado, que resultaram na criação de mais de 1,1 Read more…
O principal mercado de NFT, OpenSea, fez alguns anúncios importantes nas últimas horas. Por meio de sua conta oficial no Twitter, a OpenSea listou várias alterações em sua estrutura de taxas e royalties, que devem Read more…