微信小程序視圖層介紹及用法


一. 視圖層

WXML(WeiXin Markup Language)是框架設計的一套標簽語言,結合基礎組件事件系統,可以構建出頁面的結構。

1.1. 數據綁定

1.1.1. 普通寫法

<view> {{ message }} </view>
Page({
  data: {
    message: 'Hello MINA!'
  }
})

1.1.2. 組件屬性

簡直和上面沒區別啊

<view id="item-{{id}}"> </view>
Page({
  data: {
    id: 0
  }
})

1.1.3. bool類型

不要直接寫 checked="false",其計算結果是一個字符串

<checkbox checked="{{false}}"> </checkbox>

1.2. 運算

1.2.1. 三元運算

hidden 隱藏屬性,true為隱藏標簽

<view hidden="{{flag ? true : false}}"> Hidden </view>

1.2.2. 算數運算

<view> {{a + b}} + {{c}} + d </view>
Page({
  data: {
    a: 1,
    b: 2,
    c: 3
  }
})

1.2.3. if 邏輯判斷

如果length大於5,標簽顯示,否則不顯示

<view wx:if="{{length > 5}}"> </view>

1.2.4. 字符串運算

<view>{{"hello" + name}}</view>
Page({
  data:{
    name: 'MINA'
  }
})

1.2.5. 注意

花括號和引號之間如果有空格,將最終被解析成為字符串

1.3. 列表渲染(數組渲染)

1.3.1. wx:for

項的變量名默認為 item wx:for-item 可以指定數組當前元素的變量名

下標變量名默認為 index wx:for-index 可以指定數組當前下標的變量名

<view wx:for="{{array}}">
  {{index}}: {{item.message}}
</view>
Page({
  data: {
    array: [{
      message: 'foo',
    }, {
      message: 'bar'
    }]
  }
})

1.3.2. wx:for

渲染一個包含多節點的結構塊 block最終不會變成真正的dom元素

<block wx:for="{{[1, 2, 3]}}">
  <view> {{index}}: </view>
  <view> {{item}} </view>
</block>

1.3.3. wx:key

一般for循環都會添加wx:key屬性,提高效率使用的

<view wx:for="{{array}}" wx:key="index">
{{index}}:{{item.message}}
</view>

1.4. 條件渲染

1.4.1. wx:if

在框架中,使用 wx:if="{{condition}}" 來判斷是否需要渲染該代碼塊:

<view wx:if="{{condition}}"> True </view>

1.4.2. hidden

<view hidden="{{condition}}"> True </view>

類似 wx:if

頻繁切換 用 hidden

不常使用 用 wx:if

二、 WXSS樣式文件

2. WXSS

WXSS(WeiXin Style Sheets)是一套樣式語言,用於描述 WXML 的組件樣式。

與 CSS 相比,WXSS 擴展的特性有:

  • 尺寸單位

  • 樣式導入

2.1. 尺寸單位

  • rpx(responsive pixel): 可以根據屏幕寬度進行自適應。規定屏幕寬為750rpx。如在 iPhone6 上,屏幕寬度為375px,共有750個物理像素,則750rpx = 375px = 750物理像素,1rpx = 0.5px = 1物理像素。
設備 rpx換算px (屏幕寬度/750) px換算rpx (750/屏幕寬度)
iPhone5 1rpx = 0.42px 1px = 2.34rpx
iPhone6 1rpx = 0.5px 1px = 2rpx
iPhone6 Plus 1rpx = 0.552px 1px = 1.81rpx

建議: 開發微信小程序時設計師可以用 iPhone6 作為視覺稿的標准。

注意: 在較小的屏幕上不可避免的會有一些毛刺,請在開發時盡量避免這種情況。

2.2. 樣式導入

使用@import語句可以導入外聯樣式表,@import后跟需要導入的外聯樣式表的相對路徑,用;表示語句結束。

示例代碼:

/** common.wxss **/
.small-p {
  padding:5px;
}
/** app.wxss **/
@import "common.wxss";
.middle-p {
  padding:15px;
}

2.3. 內聯樣式

框架組件上支持使用 style、class 屬性來控制組件的樣式。

  • style:靜態的樣式統一寫到 class 中。style 接收動態的樣式,在運行時會進行解析,請盡量避免將靜態的樣式寫進 style 中,以免影響渲染速度。
<view style="color:{{color}};" />
  • class:用於指定樣式規則,其屬性值是樣式規則中類選擇器名(樣式類名)的集合,樣式類名不需要帶上.,樣式類名之間用空格分隔。
<view class="normal_view" />

2.4. 選擇器

目前支持的選擇器有:

選擇器 樣例 樣例描述
.class .intro 選擇所有擁有 class="intro" 的組件
#id #firstname 選擇擁有 id="firstname" 的組件
element view 選擇所有 view 組件
element, element view, checkbox 選擇所有文檔的 view 組件和所有的 checkbox 組件
::after view::after 在 view 組件后邊插入內容
::before view::before 在 view 組件前邊插入內容

2.5. 全局樣式與局部樣式

定義在 app.wxss 中的樣式為全局樣式,作用於每一個頁面。在 page 的 wxss 文件中定義的樣式為局部樣式,只作用在對應的頁面,並會覆蓋 app.wxss 中相同的選擇器。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM