小程序----条件渲染


1 wx:if

在小程序中,使用 wx:if=“{ {condition}}” 来判断是否需要渲染该代码块,也可以用 wx:elif 和 wx:else 来添加 else 判断。

<!--pages/list/list.wxml-->
<input type="text" bindinput="ipt"/>
<view>性别:</view>
<view wx:if="{
     
     {type==='1'}}"></view>
<view wx:elif="{
     
     {type==='0'}}"></view>
<view wx:else>保密</view>
// pages/list/list.js
Page({
    
    
  data: {
    
    
    type: ''
  },
  ipt(e) {
    
    
    this.setData({
    
    
      type: e.detail.value
    })
  }
})

请添加图片描述
请添加图片描述
请添加图片描述

2 结合 使用 wx:if

如果要一次性控制多个组件的展示与隐藏,可以使用一个 <block></block> 标签将多个组件包装起来,并在<block> 标签上使用 wx:if 控制属性。

注意: <block> 并不是一个组件,它只是一个包裹性质的容器,不会在页面中做任何渲染。

<!--pages/list/list.wxml-->
<block wx:if="{
     
     {true}}">
  <input type="text" bindinput="ipt"/>
  <view>性别:</view>
  <view wx:if="{
     
     {type==='1'}}"></view>
  <view wx:elif="{
     
     {type==='0'}}"></view>
  <view wx:else>保密</view>
</block>

请添加图片描述

<!--pages/list/list.wxml-->
<block wx:if="{
     
     {false}}">
  <input type="text" bindinput="ipt"/>
  <view>性别:</view>
  <view wx:if="{
     
     {type==='1'}}"></view>
  <view wx:elif="{
     
     {type==='0'}}"></view>
  <view wx:else>保密</view>
</block>

请添加图片描述

3 hidden

在小程序中,直接使用 hidden=“{ { condition }}” 也能控制元素的显示与隐藏。

condition 为true 隐藏;false为显示。

<!--pages/list/list.wxml-->
<view hidden="{
     
     {false}}">
  <input type="text" bindinput="ipt"/>
  <view>性别:</view>
  <view wx:if="{
     
     {type==='1'}}"></view>
  <view wx:elif="{
     
     {type==='0'}}"></view>
  <view wx:else>保密</view>
</view >

请添加图片描述

<!--pages/list/list.wxml-->
<view hidden="{
     
     {true}}">
  <input type="text" bindinput="ipt"/>
  <view>性别:</view>
  <view wx:if="{
     
     {type==='1'}}"></view>
  <view wx:elif="{
     
     {type==='0'}}"></view>
  <view wx:else>保密</view>
</view>

请添加图片描述

4 wx:if 与 hidden 的对比

  1. 运行方式不同

wx:if 以动态创建和移除元素的方式,控制元素的展示与隐藏
hidden 以切换样式的方式(display: none/block;),控制元素的显示与隐藏

  1. 使用建议

频繁切换时,建议使用 hidden
控制条件复杂时,建议使用 wx:if 搭配 wx:elif、wx:else 进行展示与隐藏的切换

猜你喜欢

转载自blog.csdn.net/m0_53022813/article/details/124389507