Guia de Componentes e Tags para Desenvolvimento em WeChat Mini Program

O Elemanto Raiz: page

No ecossistema de Mini Programs, o componente <page> atua como a base de cada tela, sendo o equivalente funcional à tag &body> do HTML convencional.

Estruturação com view

O componente <view> é o principal contêiner de layout, substituindo a tradicional <div>. Diferente do desenvolvimento web padrão, o WXML não suporta tags semânticas como <section>, <article> ou <nav>. Portanto, a estruturação visual depende quase inteiramente de componentes view combinados com classes WXSS.

Manipulação de Texto com text

Diferente de outros elementos, o componente <text> possui comportamentos específicos para strings:

  • Suporta quebras de linha via tecla Enter ou o caractere \n.
  • Permite a seleção e cópia de conteúdo (funcionalidade exclusiva deste componenet).
  • Aceita apenas o aninhamento de outros componentes text.
Atributo Tipo Descrição
user-select Boolean Habilita a seleção de texto pelo usuário.
decode Boolean Permite a decodificação de entidades como &nbsp;.
space String Define como espaços em branco consecutivos são renderizados (ex: ensp, emsp).

Renderização de Imagens: image

O componente <image> possui dimensões padrão fixas, por isso é fundamental definir largura e altura manualmente. Ele suporta carregamento progressivo (lazy loading) nativamente.

<!-- Exemplo de implementação de imagem -->
<image src="/assets/icons/home.png" mode="aspectFill" lazy-load="true" />

Principais modos de redimensionamento (mode):

  • aspectFit: Redimensiona a imagem para caber totalmente no contêiner, mantendo a proporção.
  • aspectFill: Preeenche todo o contêiner, cortando as bordas se necessário para manter a proporção.
  • widthFix: A largura é fixa e a altura se ajusta automaticamente para manter a proporção original.
  • heightFix: A altura é fixa e a largura se ajusta proporcionalmente.

Componente de Carrossel: swiper

Para criar banners ou sliders, utiliza-se o <swiper> que contém obrigatoriamente elementos <swiper-item>. Por padrão, o contêiner tem uma altura de 150px.

<swiper indicator-dots="true" autoplay="true" interval="3000" circular="true">
  <swiper-item>
    <view class="slide-content">Banner Publicitário 1</view>
  </swiper-item>
  <swiper-item>
    <view class="slide-content">Banner Publicitário 2</view>
  </swiper-item>
</swiper>

Interações e Capacidades Nativas: button

Além da função estética, o <button> no WeChat é a porta de entrada para APIs nativas através do atributo open-type.

Valor de open-type Funcionalidade
share Dispara o menu de compartilhamento nativo do WeChat.
contact Abre a interface de chat com o suporte ao cliente.
getPhoneNumber Solicita autorização para obter o número de telefone do usuário (exclusivo para contas empresariais).

Navegação entre Telas: navigator

O componente <navigator> gerencia o roteamento da aplicação. Existem comportamentos distintos baseados no tipo de página (Tab Bar ou páginas comuns).

<!-- Navegação para página comum -->
<navigator url="/pages/profile/details" open-type="navigate">Ver Perfil</navigator>

<!-- Mudança de aba no menu inferior -->
<navigator url="/pages/index/index" open-type="switchTab">Ir para Home</navigator>

<!-- Retornar à página anterior -->
<navigator open-type="navigateBack" delta="1">Voltar</navigator>

Renderização de Conteúdo Dinâmico: rich-text

Semelhante ao v-html do Vue.js, o <rich-text> permite injetar strings HTML dentro do Mini Program, convertendo tags HTML em nós nativos.

<rich-text nodes="<h1 style='color: blue;'>Título em HTML</h1>"></rich-text>

Componentes de Formulário e Ícones

Os componentes de entrada de dados como checkbox e radio permitem personalização limitada, focada principalmente na propriedade de cor.

<!-- Exemplo de Seleção Múltipla -->
<checkbox-group bindchange="handleSelection">
  <label>
    <checkbox value="dev" color="#07C160" /> Desenvolvimento
  </label>
  <label>
    <checkbox value="design" color="#07C160" /> Design
  </label>
</checkbox-group>

<!-- Ícones do Sistema -->
<icon type="success" size="30" color="green" />
<icon type="warn" size="30" />

No JavaScript da página, os valores podem ser capturados através do objeto de evento:

Page({
  handleSelection(e) {
    const selectedValues = e.detail.value;
    console.log('Itens selecionados:', selectedValues);
  }
});

Tags: WeChat Mini Program WXML Frontend Development javascript ui components

Publicado em 6-28 20:48