Miniaplicativo WeChat - o uso de slot (uso de vários slots)

 Um, crie componentes

Crie uma pasta de componentes no projeto raiz e, em seguida, crie seus componentes nele. Aqui, devemos prestar atenção à escolha ao criar a página do componente: Criar componente

 

Em segundo lugar, o uso de modelos de componentes e slots

O template do componente é escrito da mesma maneira que o template da página. A árvore de nós gerada após o modelo do componente ser combinado com os dados do componente será inserida na posição de referência do componente.

Um <slot> nó pode ser fornecido no modelo de componente  para transportar os nós filhos fornecidos quando o componente é referenciado

1. O uso de slot

<!-- 组件模板 -->
<view class="wrapper">
  <view>这里是组件的内部节点</view>
  <slot></slot>
</view>
<!-- 引用组件的页面模板 -->
<view>
  <detailM>
    <!-- 这部分内容将被放置在组件 <slot> 的位置上 -->
    <view>这里是插入到组件slot中的内容</view>
  </detailM>
</view>

O nome do componente e o caminho precisam ser adicionados ao arquivo json da página que faz referência ao componente 

Pode-se descobrir aqui que o conteúdo que inserimos no slot do componente na página detail / index.wxml foi inserido no componente

 

 2. Use componentes para passar valores

página detail / index.wxml, introduza o componente <detailM> </detailM>, defina um texto de parâmetro para passar o conteúdo dentro do componente e um array arr

<view>
  <detailM text="goodsTxt页面数据" arrlist="{
   
   {arr}}">
    <!-- 这部分内容将被放置在组件 <slot> 的位置上 -->
    <view>这里是插入到组件slot中的内容</view>
  </detailM>
</view>

O subcomponente recebe dados: 

<view class="wrapper">
<view>{
   
   {text}}</view>
<view wx:for="{
   
   {arrlist}}">{
   
   {item}}</view>
<view>这里是组件的内部节点</view>
<slot></slot>
</view>

A parte js do subcomponente é recebida por propriedades, seguidas pelo tipo de parâmetro 

Efeito de página: 

 

Nota: Essa vinculação de dados só pode transmitir dados compatíveis com JSON. A partir da versão 2.0.9 da biblioteca básica   , você também pode incluir funções nos dados (mas essas funções não podem ser chamadas diretamente em WXML e só podem ser passadas para componentes filhos)

 3. O slot do wxml do componente, usado por vários slots

Os nós podem ser incluídos no wxml do  slot componente para transportar a estrutura wxml fornecida pelo usuário do componente.

Por padrão, só pode haver um slot no wxml de um componente. Quando você precisa usar vários slots, você pode declarar para habilitá-lo no componente js.

Component({
  options: {
    multipleSlots: true // 在组件定义时的选项中启用多slot支持
  },
  properties: { /* ... */ },
  methods: { /* ... */ }
}

Neste momento, você pode usar vários slots no wxml deste componente name para distinguir entre os diferentes  .

<!-- 组件模板 -->
<view class="wrapper">
  <slot name="before"></slot>
  <view>这里是组件的内部细节</view>
  <slot name="after"></slot>
</view>

Ao usar, use  slot atributos para inserir nós em slots diferentes.

<!-- 引用组件的页面模板 -->
<view>
  <detailM>
    <!-- 这部分内容将被放置在组件 <slot name="before"> 的位置上 -->
    <view slot="before">这里是插入到组件slot name="before"中的内容</view>
    <!-- 这部分内容将被放置在组件 <slot name="after"> 的位置上 -->
    <view slot="after">这里是插入到组件slot name="after"中的内容</view>
  </detailM>
</view>

4. Estilo de componente

wxss O estilo do arquivo correspondente  ao componente é válido apenas para os nós no wxml do componente. Ao escrever estilos de componentes, você precisa prestar atenção aos seguintes pontos:

  • Componentes e páginas que fazem referência a componentes não podem usar seletor de id ( #a), seletor de atributo ( [a]) e seletor de nome de tag, use o seletor de classe.
  • O uso de seletores descendentes ( .a .b) em componentes e páginas que se referem a componentes pode causar comportamento inesperado em alguns casos extremos. Evite usá-los em caso de encontros.
  • O seletor de elemento filho ( .a>.b) só pode ser usado  view entre um componente e seus nós filho e pode causar situações inesperadas para outros componentes.
  • Estilos herdados, como  font ,  color serão herdados de fora do componente para dentro do componente.
  • Exceto para estilos herdados,  app.wxss os estilos e o estilo da página onde o componente está localizado são inválidos para componentes personalizados (a menos que a opção de isolamento do estilo do componente seja alterada).
#a { } /* 在组件中不能使用 */
[a] { } /* 在组件中不能使用 */
button { } /* 在组件中不能使用 */
.a > .b { } /* 除非 .a 是 view 组件节点,否则不一定会生效 */

Além disso, o componente pode especificar o estilo padrão do nó onde está localizado, usando o  :host seletor (ele precisa incluir  o suporte da ferramenta de desenvolvedor da biblioteca básica  1.7.2 ou superior).

Exemplo de código:

 :host {
  color: red;
}

 

Aqui está apenas uma lista simples do uso de alguns slots de miniaplicativo WeChat. Para obter mais informações, consulte o documento oficial: https://developers.weixin.qq.com/miniprogram/dev/framework/custom-component/wxml- wxss.html

Acho que você gosta

Origin blog.csdn.net/asteriaV/article/details/107122309
Recomendado
Clasificación