?程序中常?的布局組件 :
view
,text
,rich-text
,button
,image
,navigator
,icon
,swiper
,radio
,checkbox
珍策。 等
1. view
標(biāo)簽
- 代替原來的
div
標(biāo)簽
<view hover-class="h-class">
點擊我試試
</view>
2. text
- ?本標(biāo)簽粟耻。
- 只能嵌套text想邦。
- ?按?字可以復(fù)制(只有該標(biāo)簽有這個功能)奸笤。
- 可以對空格回?進?編碼。
屬性名 | 類型 | 默認(rèn)值 | 說明 |
---|---|---|---|
selectable | Boolean | false | ?本是否可選 |
decode | Boolean | false | 是否解碼 |
user-select | Boolean | false | 文本是否可選训挡,該屬性會使文本節(jié)點顯示為 inline-block |
- 代碼演示 :
<!--
1. user-select="{{true}}" 文本是否可選
2. decode 是否解碼
-->
<text user-select decode>
text標(biāo)簽 使用decode
</text>
3. image
- 圖?標(biāo)簽尚镰,image組件默認(rèn)寬度320px、?度240px立倍。
- ?持懶加載灭红。
屬性名 | 類型 | 默認(rèn)值 | 說明 |
---|---|---|---|
src | String | 圖?資源地址 | |
mode | String | scaleToFill |
圖?裁剪、縮放的模式 |
lazy-load | Boolean | false | 圖?懶加載 |
3.1 mode
有效值:
- mode 有 13 種模式口注,其中 4 種是縮放模式变擒,9 種是裁剪模式。
模式 | 值 | 說明 |
---|---|---|
縮放 | scaleToFill |
不保持縱橫?縮放圖?寝志,使圖?的寬?完全拉伸?填滿image 元素 |
縮放 | aspectFit |
保持縱橫?縮放圖?娇斑,使圖?的?邊能完全顯?出來。 |
縮放 | aspectFill |
保持縱橫?縮放圖?材部,只保證圖?的短邊能完全顯?出來毫缆。 |
縮放 | widthFix |
寬度不變,?度?動變化乐导,保持原圖寬??不變 |
裁剪 | top |
不縮放圖?苦丁,只顯?圖?的頂部區(qū)域 |
裁剪 | bottom |
縮放圖?,只顯?圖?的底部區(qū)域 |
裁剪 | center |
不縮放圖?物臂,只顯?圖?的中間區(qū)域 |
裁剪 | left |
不縮放圖?芬骄,只顯?圖?的左邊區(qū)域 |
裁剪 | right |
不縮放圖?猾愿,只顯?圖?的右邊區(qū)域 |
裁剪 | top``left |
不縮放圖?,只顯?圖?的左上邊區(qū)域 |
裁剪 | top``right |
不縮放圖账阻,只顯?圖?的右上邊區(qū)域 |
裁剪 | bottom``left |
不縮放圖?蒂秘,只顯?圖?的左下邊區(qū)域 |
裁剪 | bottom``right |
不縮放圖?,只顯?圖?的右下邊區(qū)域 |
4. swiper
微信內(nèi)置輪播圖組件淘太。
輪播圖的外層容器 swiper姻僧。
每一個輪播圖項 swiper-item。
siwper 標(biāo)簽存在默認(rèn)的樣式:
width 100%
height 150px
image
標(biāo)簽也存在默認(rèn)的樣式320 * 240px
swiper
高度無法實現(xiàn)有內(nèi)容撐開
- 先找出原來圖片的寬度和高度進行等比例計算給
swiper
定高度和寬度:
原圖的寬度和高度是
640*200
計算 :swiper
寬度 /swiper
高度 = 原圖的寬度 / 原圖的高度
swiper
高度 =swiper
高度 * (原圖的寬度 / 原圖的高度)
swiper height = 100vm(750rpx) * 200 / 640
4.1 輪播圖案例
4.1.1 wxml
<swiper
autoplay="{{true}}"
interval="3000"
circular="{{true}}"
indicator-dots="{{true}}"
indicator-color="rgba(66, 66, 66, .3)"
indicator-active-color="#888666"
>
<swiper-item > <image src="https://aecpm.alicdn.com/simba/img/TB1CWf9KpXXXXbuXpXXSutbFXXX.jpg_q50.jpg" mode="widthFix" /></swiper-item>
<swiper-item > <image src="http://gw.alicdn.com/imgextra/i2/50/O1CN01mNsh8x1CEwQx6WiqP_!!50-0-lubanu.jpg" mode="widthFix" /></swiper-item>
<swiper-item > <image src="http://gw.alicdn.com/imgextra/i4/117/O1CN01w8hBHE1CjcyBxK7WT_!!117-0-lubanu.jpg" mode="widthFix" /></swiper-item>
</swiper>
4.1.2 wxss
swiper {
width: 100%;
height: calc(750rpx * 200 / 640);
}
image {
width: 100%;
}
4.2 swiper
的屬性
屬性名 | 類型 | 默認(rèn)值 | 說明 |
---|---|---|---|
indicator-dots | Boolean | false | 是否顯??板指?點 |
indicator-color | Color | rgba(0,0,0,.3) | 指?點顏? |
indicator-active-color | Color | #000000 | 當(dāng)前選中的指?點顏? |
autoplay | Boolean | false | 是否?動切換 |
interval | Number | 5000ms | ?動切換時間間隔 |
circular | Boolean | false | 是否循環(huán)輪播 |
4.3 swiper-item
- 滑塊 : 默認(rèn)寬度和?度都是
100%
蒲牧。
5. navigator
導(dǎo)航組件
- 導(dǎo)航組件類似超鏈接標(biāo)簽撇贺。
屬性名 | 類型 | 默認(rèn)值 | 說明 |
---|---|---|---|
target | String | self | 在哪個?標(biāo)上發(fā)?跳轉(zhuǎn),默認(rèn)當(dāng)前?程序冰抢,可選值 self/miniProgram
|
url | String | 當(dāng)前?程序內(nèi)的跳轉(zhuǎn)鏈接 | |
opentype | String | navigate | 跳轉(zhuǎn)?式 |
-
open-type
有效值:
值 | 說明 |
---|---|
navigate |
保留當(dāng)前??松嘶,跳轉(zhuǎn)到應(yīng)?內(nèi)的某個??,但是不能跳到 tabbar ?? |
redirect |
關(guān)閉當(dāng)前??挎扰,跳轉(zhuǎn)到應(yīng)?內(nèi)的某個??翠订,但是不允許跳轉(zhuǎn)到tabbar ??。 |
switchTab |
跳轉(zhuǎn)到tabBar ??遵倦,并關(guān)閉其他所有?tabBar ?? |
reLaunch |
關(guān)閉所有??尽超,打開到應(yīng)?內(nèi)的某個?? |
navigateBack |
關(guān)閉當(dāng)前??,返回上???或多級??梧躺∷扑可通過getCurrentPages() 獲取當(dāng)前的??棧,決定需要返回?層 |
exit |
退出?程序掠哥,target= miniProgram 時?效 |
6. rich-text
富文本標(biāo)簽
可以將字符串解析成對應(yīng)標(biāo)簽巩踏,類似
vue
中v-html
功能。直接解析
html
代碼 :
<!--
rich-text 富文本標(biāo)簽
-->
<rich-text nodes="{{html}}"></rich-text>
Page({
/**
* 頁面的初始數(shù)據(jù)
*/
data: {
html: '<h1>Hello rich-text</h1>'
},
})
- 解析對象的方式 :
<rich-text nodes="{{nodes}}"></rich-text>
Page({
/**
* 頁面的初始數(shù)據(jù)
*/
data: {
nodes: [{
name: 'div',
attrs: {
class: 'div-class',
style: 'color:red'
},
children: [{
type: 'text',
text: 'hello wrold!'
}]
}]
},
})
6.1 nodes
屬性
-
nodes
屬性?持字符串和標(biāo)簽節(jié)點數(shù)組续搀。
屬性 | 說明 | 類型 | 必填 | 備注 |
---|---|---|---|---|
name |
標(biāo)簽名 | string |
是 | ?持部分受信任的HTML 節(jié)點 |
attrs |
屬性 | object |
否 | ?持部分受信任的屬性蛀缝,遵循Pascal 命名法 |
children |
?節(jié)點列表 | array |
否 | 結(jié)構(gòu)和nodes ?致 |
- ?本節(jié)點:
type=text
屬性 | 說明 | 類型 | 必填 | 備注 |
---|---|---|---|---|
text |
?本 | string |
是 | ?持entities
|
nodes
不推薦使?String
類型,性能會有所下降目代。rich-text
件內(nèi)屏蔽所有節(jié)點的事件屈梁。attrs
屬性不?持id
,?持class
榛了。name
屬性??寫不敏感在讶。如果使?了不受信任的
HTML
節(jié)點,該節(jié)點及其所有?節(jié)點將會被移除霜大。img
標(biāo)簽僅?持?絡(luò)圖?构哺。
7. button
標(biāo)簽
8. icon
標(biāo)簽
9. radio
單選按鈕
需要搭配
radio-group
?起使?。可以通過
color
屬性來修改顏色。代碼案例 :
<!--
1. radio 單選按鈕
-->
<radio-group bindchange="handleChange">
<radio color="red" value="male" /> 男
<radio color="red" value="female"/> 女
</radio-group>
<view>
您選擇的性別是 : {{gender}}
</view>
// pages/demo14/demo14.js
Page({
/**
* 頁面的初始數(shù)據(jù)
*/
data: {
gender: ''
},
handleChange(e) {
let gender = e.detail.value;
this.setData({
// 這里是ES6的寫法 gender = gender
gender
});
}
});
- 參考文檔 : 單選按鈕微信官方文檔
10. checkbox
復(fù)選框
參考文檔 : 復(fù)選框微信官方文檔曙强。
參考代碼
wxml
:
<checkbox-group bindchange="handleChange">
<checkbox wx:for="{{list}}" wx:key="{{item.id}}" value="{{item.value}}">
{{item.name}}
</checkbox>
</checkbox-group>
<view>
您選中的水果有 : {{checkedList}}
</view>
- 參考代碼
js
:
// pages/demo15/demo15.js
Page({
/**
* 頁面的初始數(shù)據(jù)
*/
data: {
list: [{
id: 0,
name: '蘋果',
value: 'apple'
},
{
id: 1,
name: '香蕉',
value: 'banana'
},
{
id: 2,
name: '葡萄',
value: 'grape'
},
],
checkedList: []
},
handleChange(e) {
console.log(e);
let checkedList = e.detail.value;
this.setData({
checkedList
});
}
})