前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >微信小程序开发实战(3):条件渲染

微信小程序开发实战(3):条件渲染

作者头像
蒙娜丽宁
发布2020-06-02 17:16:30
1.3K0
发布2020-06-02 17:16:30
举报
文章被收录于专栏:极客起源极客起源

小程序的布局支持直接在组件中使用条件渲染属性,该属性的语法如下:

代码语言:javascript
复制
<view wx:if="{{condition}}"> 满足条件 </view>

其中wx:if是一个控制属性,condition是条件表达式。如果condition的值为true,则输出<view>组件中的值。如果有多个条件,和if语句的条件一样,中间可以用&&表示逻辑与,用||表示逻辑或。例如,下面的布局代码的count变量值如果小于4,则输出“数值比较小”,否则什么也不会输出。

代码语言:javascript
复制
<view wx:if="{{count < 4}}"> 数值比较小 </view>

wx:if也可以像if语句一样,使用else if和else。与wx:if对应的是wx:elif和wx:else。下面的布局代码通过对count不同值的判断,会输出不同的字符串。读者可自行设置count变量的值来控制输出结果。

代码语言:javascript
复制
<view>
  <view wx:if="{{count < 4 && count > 0}}"> 数值比较小 </view>
  <view wx:elif="{{count == 100 || count == 300}}"> 固定数值 </view>
  <view wx:else> 其他值 </view>
</view> 

如果在组件中使用wx:if、wx:elif或ex:else,只能控制当前的组件是否起作用。如果要控制多个组件,需要使用<block>、<block>并不是一个组件,它仅仅是一个包装组件,使用方法类似于容器组件,在<block>中可以放置任意多个组件。例如,下面的布局代码使用了3个<block>标签,分别使用了wx:if、wx:elif和wx:else进行控制。如果count等于2,则显示2个view,count等于3,则显示3个view,否则,则显示1个view。

代码语言:javascript
复制
<view class="flex-row">
  <block wx:if="{{count == 2}}">
    <view id="green" class="scroll-view-item bc_green"></view>
    <view id="red" class="scroll-view-item bc_red"></view>
  </block>
  <block wx:elif="{{count == 3}}">
    <view id="green" class="scroll-view-item bc_green"></view>
    <view id="red" class="scroll-view-item bc_red"></view>
    <view id="yellow" class="scroll-view-item bc_yellow"></view>
  </block>
  <block wx:else>
    <view id="green" class="scroll-view-item bc_green"></view>
  </block>
</view>

当count分别为2、3以及其他值时,显示的效果如图1、图2和图3所示。

图1 count == 2的效果

图2 count == 3的效果

图3 count == 5的效果

要注意的是,wx:elif和wx:else需要紧跟在wx:if后面。如果wx:if的条件满足,那么后面的wx:elif和wx:else都不会执行。如果用多个wx:if,只要条件满足,就都会执行。例如,下面的两段布局分别使用了wx:if、wx:elif和两个wx:if。

使用wx:if和wx:elif

代码语言:javascript
复制
<view class="flex-row">
  <block wx:if="{{count < 5}}">
    <view id="green" class="scroll-view-item bc_green"></view>
    <view id="red" class="scroll-view-item bc_red"></view>
  </block>
  <block wx:elif="{{count == 3}}">
    <view id="green" class="scroll-view-item bc_green" ></view>
    <view id="red" class="scroll-view-item bc_red"></view>
    <view id="yellow" class="scroll-view-item bc_yellow"></view>
  </block>
</view>

使用两个wx:if。

代码语言:javascript
复制
<view class="flex-row">
  <block wx:if="{{count < 5}}">
      <view id="green" class="scroll-view-item bc_green"></view>
    <view id="red" class="scroll-view-item bc_red"></view>
  </block>
  <block wx:if="{{count == 3}}">
    <view id="green" class="scroll-view-item bc_green" ></view>
    <view id="red" class="scroll-view-item bc_red"></view>
    <view id="yellow" class="scroll-view-item bc_yellow"></view>
  </block>
</view>

很明显,如果count等于3,count < 5和count == 3两个条件都满足,如果使用wx:elif,只有使用wx:if的<block>会执行,而如果使用两个wx:if,两个<block>都会执行,效果如图4所示。

图4 两个wx:if的效果

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-05-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 极客起源 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档