当前位置:网站首页>Mise en œuvre du rendu de liste et du rendu conditionnel pour l'apprentissage des applets Wechat.
Mise en œuvre du rendu de liste et du rendu conditionnel pour l'apprentissage des applets Wechat.
2022-06-24 09:54:00 【- Oui. Vêtements de soupir】
Généralités:
Pour réaliser le rendu de liste, nous allons d'abord vous présenter< blockÉtiquettes.
L'étiquette ne rend plus rien dans la liste,Généralement utilisé comme conteneur.
Nous pouvons ajouter des éléments qualificatifs aux étiquettes pour contrôler les effets de rendu.
Par exemple,Lorsque nous avons besoin de rendre une qualification, nous pouvons l'écrire comme:
<block wx:if="{
{case_length}}">
</block>Et quand on a besoin de boucler une liste, on peut l'écrire comme:
<label class="radio" wx:for="{
{len_items}}">
</block>
Bien sûr, icilen_itemsCe n'est pas seulement une liste,Ou un dictionnaire..
Boucle de rendu:
Lorsque la cible de rendu est une liste:
Le nom de la variable d'indice de l'élément courant du tableau par défaut est par défaut index,Le nom de la variable de l'élément courant du tableau est par défaut item
<view wx:for="{
{array}}">
{
{index}}: {
{item.message}}
</view>
Page({
data: {
array: [{
message: 'foo',
}, {
message: 'bar'
}]
}
})Utiliser wx:for-item Vous pouvez spécifier le nom de la variable pour l'élément courant du tableau,
Utiliser wx:for-index Vous pouvez spécifier le nom de la variable pour l'indice courant du tableau:
<view wx:for="{
{array}}" wx:for-index="idx" wx:for-item="itemName">
{
{idx}}: {
{itemName.message}}
</view>Exemple:
<radio-group bindchange="getlen_select1">
<label class="radio" wx:for="{
{len_items}}">
<view class="tui-menu-list">
<radio color="#007aff" value="{
{item.name}}" />{
{index}}: {
{item.name}}
<!-- <block wx:if="{
{index==0}}"> <view> <button>Liste de retrait</button></view></block> -->
</view>
</label>
</radio-group> len_items: [{
name: 'Nanomètre'
}, {
name: 'Micron'
}, {
name: 'Mm'
}, {
name: 'Cm'
}, {
name: 'M',
checked: true
}, {
name: 'Km'
}, {
name: 'Pieds'
}, {
name: 'Pouces'
}, {
name: 'Code'
}, {
name: 'Miles'
}, {
name: 'Mer'
}],
Lorsque la cible de rendu est un dictionnaire :
QuanditemsLorsque le dictionnaire index Indexer la valeur de la clé primaire au lieu d'un tableau comme celui - ci .
Exemple:
weight_items: {
"Kgm": {
proportion: 1
},
"G": {
proportion: 1000
},
"Tonnes": {
proportion: 0.001
},
"Livres": {
proportion: 2.204623
},
"Carat": {
proportion: 5000
},
"Mg": {
proportion: 1000000
},
"Oz": {
proportion: 35.27396
},
" Tonnes courtes (Système américain)": {
proportion: 0.001102
},
" Tonnes longues (Anglais)": {
proportion: 0.000984
},
"Jin.": {
proportion: 2
},
"Deux.": {
proportion: 20
},
"L'argent.": {
proportion: 2000
}
}, <radio-group bindchange="getlen_select1">
<label class="radio" wx:for="{
{weight_items}}" wx:key="*this">
<view class="tui-menu-list">
<radio color="#007aff" value="{
{index}}" />{
{index}}
</view>
</label>
</radio-group> 
wx:key
Si l'emplacement des éléments de la liste change dynamiquement ou si de nouveaux éléments sont ajoutés à la liste,Et vous voulez que les éléments de la liste conservent leurs caractéristiques et leur statut(Par exemple: input Entrée dans,switch État sélectionné pour),À utiliser wx:key Pour spécifier l'identificateur unique de l'élément dans la liste.
wx:key Les valeurs de sont fournies sous deux formes
- String,Représentant for Cyclique array Moyenne item Un des property,Le property La valeur de doit être une chaîne ou un nombre unique dans la liste,Et ne peut pas changer dynamiquement.
- Conserver les mots clés
*thisReprésentant for En boucle item En soi,Cette représentation exige item Une chaîne ou un numéro unique en soi.
Quand un changement de données déclenche un rendu de couche,Sera corrigé avec key Composants de,Le cadre garantit qu'ils sont réorganisés,Au lieu de recréer,Pour s'assurer que le composant reste dans son état,Et rendre la liste plus efficace.
Si ce n'est pas le cas wx:key,Il y aura un warning, Si vous savez clairement que la liste est statique,Ou ne pas se soucier de son ordre,Vous pouvez choisir d'ignorer.
Rendu conditionnel:
Nous ne pouvons pas seulement utiliser if elif else Jugement Voici quelques exemples::
<view wx:if="{
{length > 5}}"> 1 </view>
<view wx:elif="{
{length > 2}}"> 2 </view>
<view wx:else> 3 </view>Exemple:
<view class="length_select">
<block wx:if="{
{!length_select1}}">
<view>
<view> <button class="hidelist" bindtap="hidelist_len1"> Liste de retrait</button></view>
<radio-group bindchange="getlen_select1">
<label class="radio" wx:for="{
{weight_items}}" wx:key="*this">
<view class="tui-menu-list">
<radio color="#007aff" value="{
{index}}" />{
{index}}
</view>
</label>
</radio-group>
</view>
</block>
<block wx:else="">
<view> <button class="displaylist" bindtap="displaylist_len1"> Veuillez sélectionner les unités connues </button></view>
</block>
</view> 

wx:if Et hidden
Parce que wx:if Les modèles dans peuvent également contenir des liens de données,Donc quand wx:if Lors de la commutation des valeurs conditionnelles pour,Le cadre a un processus de rendu local,Parce qu'il s'assure que le bloc conditionnel est détruit ou rendu de nouveau lors de la commutation.
En même temps wx:if C'est aussiInerte,Si la condition de rendu initiale est false,Le cadre ne fait rien,Le rendu local ne commence que lorsque la condition devient vraie pour la première fois.
En comparaison,hidden C'est plus simple,Les composants sont toujours rendus,Simple contrôle de l'affichage et de la dissimulation.
En général,wx:if Il y a une plus grande consommation de commutation et hidden A une consommation de rendu initiale plus élevée.Donc,,Si des changements fréquents sont nécessaires,Avec hidden C'est mieux.,S'il est peu probable que les conditions d'exécution changent wx:if C'est mieux..
边栏推荐
- js单例模式
- Oracle数据文件头SCN不一致处理方法
- Talking about the knowledge of digital transformation
- GIS实战应用案例100篇(十四)-ArcGIS属性连接和使用Excel的问题
- PHP file lock
- 二十、处理器调度(RR时间片轮转,MLFQ多级反馈队列,CFS完全公平调度器,优先级翻转;多处理器调度)
- 关于thinkphp5 使用模型save()更新数据提示 method not exist:think\db\Query-&gt; 报错解决方案
- Thinkphp5 multi language switching project practice
- Indexeddb local storage, homepage optimization
- 416-二叉树(前中后序遍历—迭代法)
猜你喜欢

LeetCode: 240. 搜索二维矩阵 II

Ggplot2 color setting summary

R ellipse random point generation and drawing

NVIDIA's CVPR 2022 oral is on fire! 2D images become realistic 3D objects in seconds! Here comes the virtual jazz band!

How to solve multi-channel customer communication problems in independent stations? This cross-border e-commerce plug-in must be known!

Thinkphp5 multi language switching project practice

Binary tree part I

Servlet快速筑基

20、 Processor scheduling (RR time slice rotation, mlfq multi-level feedback queue, CFS fully fair scheduler, priority reversal; multiprocessor scheduling)

顶刊TPAMI 2022!基于不同数据模态的行为识别:最新综述
随机推荐
R ellipse random point generation and drawing
GIS实战应用案例100篇(十四)-ArcGIS属性连接和使用Excel的问题
Algorithm -- find and maximum length k subsequence (kotlin)
PHP使用递归和非递归方式实现创建多级文件夹
队列Queue
数组无缝滚动demo
医学图像开源数据集汇总(二)
Reasons for the failure of digital transformation and the way to success
数字化转型的失败原因及成功之道
Use of vim
针对《VPP实现策略路由》的修正
LeetCode: 240. 搜索二维矩阵 II
Ora-16038 ora-19502 ora-00312 troubleshooting
Jcim | AI based protein structure prediction in drug discovery: impacts and challenges
e的lnx为什么等于x
Endgame P.O.O
关于thinkphp5 使用模型save()更新数据提示 method not exist:think\db\Query-&gt; 报错解决方案
Idea cannot save settings source root d:xxxx is duplicated in module XXX
Ora-28000 error after upgrading Oracle 12C to 19C
Symbol.iterator 迭代器