【前端小程序】第八章 小程序中的常見組件

?程序中常?的布局組件 : view,text , rich-text,button,image,navigator,icon,swiper,radio,checkbox珍策。 等

1. view標(biāo)簽

  1. 代替原來的 div標(biāo)簽
<view hover-class="h-class">
    點擊我試試
</view>

2. text

  1. ?本標(biāo)簽粟耻。
  2. 只能嵌套text想邦。
  3. ?按?字可以復(fù)制(只有該標(biāo)簽有這個功能)奸笤。
  4. 可以對空格回?進?編碼。
屬性名 類型 默認(rèn)值 說明
selectable Boolean false ?本是否可選
decode Boolean false 是否解碼
user-select Boolean false 文本是否可選训挡,該屬性會使文本節(jié)點顯示為 inline-block
  1. 代碼演示 :
    <!-- 
        1. user-select="{{true}}" 文本是否可選
        2. decode 是否解碼
     -->
<text  user-select decode>
    text標(biāo)簽 &nbsp; 使用decode
</text>

3. image

  1. 圖?標(biāo)簽尚镰,image組件默認(rèn)寬度320px、?度240px立倍。
  2. ?持懶加載灭红。
屬性名 類型 默認(rèn)值 說明
src String 圖?資源地址
mode String scaleToFill 圖?裁剪、縮放的模式
lazy-load Boolean false 圖?懶加載

3.1 mode 有效值:

  1. 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

  1. 微信內(nèi)置輪播圖組件淘太。

  2. 輪播圖的外層容器 swiper姻僧。

  3. 每一個輪播圖項 swiper-item。

  4. siwper 標(biāo)簽存在默認(rèn)的樣式:

width 100%
height 150px image 標(biāo)簽也存在默認(rèn)的樣式 320 * 240px
swiper高度無法實現(xiàn)有內(nèi)容撐開

  1. 先找出原來圖片的寬度和高度進行等比例計算給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

  1. 滑塊 : 默認(rèn)寬度和?度都是100%蒲牧。

5. navigator導(dǎo)航組件

  1. 導(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)?式
  1. 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)簽

  1. 可以將字符串解析成對應(yīng)標(biāo)簽巩踏,類似 vuev-html 功能。

  2. 直接解析 html 代碼 :

<!-- 
    rich-text 富文本標(biāo)簽
 -->
 <rich-text nodes="{{html}}"></rich-text>
Page({

    /**
     * 頁面的初始數(shù)據(jù)
     */
    data: {
        html: '<h1>Hello rich-text</h1>'
    },
})
  1. 解析對象的方式 :
<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 屬性

  1. nodes 屬性?持字符串和標(biāo)簽節(jié)點數(shù)組续搀。
屬性 說明 類型 必填 備注
name 標(biāo)簽名 string ?持部分受信任的HTML節(jié)點
attrs 屬性 object ?持部分受信任的屬性蛀缝,遵循Pascal命名法
children ?節(jié)點列表 array 結(jié)構(gòu)和nodes?致
  1. ?本節(jié)點:type=text
屬性 說明 類型 必填 備注
text ?本 string ?持entities
  1. nodes 不推薦使?String類型,性能會有所下降目代。

  2. rich-text件內(nèi)屏蔽所有節(jié)點的事件屈梁。

  3. attrs 屬性不?持id,?持class榛了。

  4. name 屬性??寫不敏感在讶。

  5. 如果使?了不受信任的HTML 節(jié)點,該節(jié)點及其所有?節(jié)點將會被移除霜大。

  6. img 標(biāo)簽僅?持?絡(luò)圖?构哺。

7. button標(biāo)簽

  1. button 參考手冊

8. icon 標(biāo)簽

  1. icon 標(biāo)簽參考手冊

9. radio 單選按鈕

  1. 需要搭配radio-group?起使?。

  2. 可以通過 color 屬性來修改顏色。

  3. 代碼案例 :

<!-- 

    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
        });
    }

});
  1. 參考文檔 : 單選按鈕微信官方文檔

10. checkbox 復(fù)選框

  1. 參考文檔 : 復(fù)選框微信官方文檔曙强。

  2. 參考代碼 wxml


<checkbox-group bindchange="handleChange">

    <checkbox  wx:for="{{list}}" wx:key="{{item.id}}" value="{{item.value}}">
        {{item.name}}
    </checkbox>
    
</checkbox-group>

<view>
    您選中的水果有 : {{checkedList}}
</view>
  
  1. 參考代碼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
        });
    }
})
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末残拐,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子碟嘴,更是在濱河造成了極大的恐慌溪食,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,042評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件娜扇,死亡現(xiàn)場離奇詭異错沃,居然都是意外死亡,警方通過查閱死者的電腦和手機雀瓢,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評論 2 384
  • 文/潘曉璐 我一進店門枢析,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人刃麸,你說我怎么就攤上這事醒叁。” “怎么了泊业?”我有些...
    開封第一講書人閱讀 156,674評論 0 345
  • 文/不壞的土叔 我叫張陵把沼,是天一觀的道長。 經(jīng)常有香客問我脱吱,道長,這世上最難降的妖魔是什么认罩? 我笑而不...
    開封第一講書人閱讀 56,340評論 1 283
  • 正文 為了忘掉前任箱蝠,我火速辦了婚禮,結(jié)果婚禮上垦垂,老公的妹妹穿的比我還像新娘宦搬。我一直安慰自己,他們只是感情好劫拗,可當(dāng)我...
    茶點故事閱讀 65,404評論 5 384
  • 文/花漫 我一把揭開白布间校。 她就那樣靜靜地躺著,像睡著了一般页慷。 火紅的嫁衣襯著肌膚如雪憔足。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,749評論 1 289
  • 那天酒繁,我揣著相機與錄音滓彰,去河邊找鬼。 笑死州袒,一個胖子當(dāng)著我的面吹牛揭绑,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播郎哭,決...
    沈念sama閱讀 38,902評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼他匪,長吁一口氣:“原來是場噩夢啊……” “哼菇存!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起邦蜜,我...
    開封第一講書人閱讀 37,662評論 0 266
  • 序言:老撾萬榮一對情侶失蹤依鸥,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后畦徘,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體毕籽,經(jīng)...
    沈念sama閱讀 44,110評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年井辆,在試婚紗的時候發(fā)現(xiàn)自己被綠了关筒。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,577評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡杯缺,死狀恐怖蒸播,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情萍肆,我是刑警寧澤袍榆,帶...
    沈念sama閱讀 34,258評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站塘揣,受9級特大地震影響包雀,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜亲铡,卻給世界環(huán)境...
    茶點故事閱讀 39,848評論 3 312
  • 文/蒙蒙 一才写、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧奖蔓,春花似錦赞草、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至疑务,卻和暖如春沾凄,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留节值,地道東北人。 一個月前我還...
    沈念sama閱讀 46,271評論 2 360
  • 正文 我出身青樓牙肝,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子配椭,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,452評論 2 348