### [條件渲染](https://mp.weixin.qq.com/debug/wxadoc/dev/framework/view/wxml/conditional.html)
### wx:if
在框架中,使用 `wx:if="{{condition}}"` 來判斷是否需要渲染該代碼塊:
```html
<view wx:if="{{condition}}"> True </view>
```
也可以用 `wx:elif` 和 `wx:else` 來添加一個 else 塊:
```html
<view wx:if="{{length > 5}}"> 1 </view>
<view wx:elif="{{length > 2}}"> 2 </view>
<view wx:else> 3 </view>
```
### block wx:if
因為 `wx:if` 是一個控制屬性,需要將它添加到一個標簽上。如果要一次性判斷多個組件標簽,可以使用一個 `<block/>` 標簽將多個組件包裝起來,并在上邊使用 `wx:if` 控制屬性。
```html
<block wx:if="{{true}}">
<view> view1 </view>
<view> view2 </view>
</block>
```
**注意:** `<block/>` 并不是一個組件,它僅僅是一個包裝元素,不會在頁面中做任何渲染,只接受控制屬性。
### `wx:if` vs `hidden`
因為 `wx:if` 之中的模板也可能包含數據綁定,所有當 `wx:if` 的條件值切換時,框架有一個局部渲染的過程,因為它會確保條件塊在切換時銷毀或重新渲染。
同時 `wx:if` 也是**惰性的**,如果在初始渲染條件為 `false`,框架什么也不做,在條件第一次變成真的時候才開始局部渲染。
相比之下,`hidden` 就簡單的多,組件始終會被渲染,只是簡單的控制顯示與隱藏。
一般來說,`wx:if` 有更高的切換消耗而 `hidden` 有更高的初始渲染消耗。因此,如果需要頻繁切換的情景下,用 `hidden` 更好,如果在運行時條件不大可能改變則 `wx:if` 較好。
- 簡介
- 第一章 公眾號開發
- 使用微信JSSDK
- 接口權限配置
- 分享接口
- 隱藏按鈕項
- 微信支付
- 第二章 小程序開發
- 基礎知識
- 分包加載
- WXSS樣式表
- 配置
- app.json配置
- window
- tabBar
- page.json配置
- 邏輯層
- app.js
- 場景值
- page.js
- 初始化數據
- 生命周期函數
- 頁面相關事件處理函數
- 事件處理函數
- 頁面實例方法
- 路由
- 文件作用域
- 模塊化
- 視圖層
- 模板語法
- 列表渲染
- 條件渲染
- 模板
- 事件
- 引用
- WXS語法規范
- WXS數據類型
- WXS控制流程
- WXS基礎類庫
- 組件
- 視圖容器
- view
- scroll-view
- swiper
- movable-view
- cover-view
- 基礎組件
- icon
- text
- rich-text
- progress
- 表單組件
- button
- checkbox
- form
- input
- label
- picker
- picker-view
- radio
- slider
- switch
- textarea
- 導航組件
- navigator
- 媒體組件
- audio
- image
- video
- camera
- 地圖組件
- map
- 畫布組件
- canvas
- 開放能力
- web-view
- 自定義組件
- 組件模版和樣式
- Component
- 組件傳值
- 組件事件
- Behaviors
- 組件間關系
- 網絡請求
- wx.request
- 微信登錄
- 獲取 openid 和 unionid
- 獲取用戶信息
- 將 wx.request 封裝為 promise
- 上傳圖片接口封裝
- 數據存儲
- 存儲數據和讀取數據
- 獲取數據緩存信息
- 移除數據緩存
- 獲取用戶設置
- openSetting
- getSetting
- 第三章 小游戲開發
- 參考資料