微信小程序配置視圖層數(shù)據(jù)綁定相關(guān)示例
官方文檔
https://developers.weixin.qq.com/miniprogram/dev/component/
一、小程序結(jié)構(gòu)目錄
小程序框架的目標(biāo)是通過盡可能簡(jiǎn)單、高效的方式讓開發(fā)者可以在微信中開發(fā)具有原生 APP 體驗(yàn)的服務(wù)。
小程序框架提供了自己的視圖層描述語言WXML
和WXSS
,以及JavaScript
,并在視圖層與邏輯層間提供了數(shù)據(jù)傳輸和事件系統(tǒng),讓開發(fā)者能夠?qū)W⒂跀?shù)據(jù)與邏輯。
1.1 小程序文件結(jié)構(gòu)和傳統(tǒng)web對(duì)比
結(jié)構(gòu) | 傳統(tǒng)web | 微信小程序 |
---|---|---|
結(jié)構(gòu) | HTML | WXML |
樣式 | CSS | WXSS |
邏輯 | Javascript | Javascript |
配置 | 無 | JSON |
通過以上對(duì)比得出,傳統(tǒng)web是三層結(jié)構(gòu)。而微信小程序 是四層結(jié)構(gòu),多了一層配置.json
1.2 基本的項(xiàng)目目錄
二、配置介紹
2.1 配置介紹
一個(gè)小程序應(yīng)用程序會(huì)包括最基本的兩種配置文件。一種是全局的app.json和 頁面自己的page.json
注意:配置文件中不能出現(xiàn)注釋
2.2 全局配置app.json
app.json是當(dāng)前小程序的全局配置,包括了小程序的所有頁面路徑、界面表現(xiàn)、網(wǎng)絡(luò)超時(shí)時(shí)間、底部 tab 等。普通快速啟動(dòng)項(xiàng)目里邊的app.json配置
{ "pages":[ "pages/index/index", "pages/logs/logs" ], "window":{ "backgroundTextStyle":"light", "navigationBarBackgroundColor": "#fff", "navigationBarTitleText": "WeChat", "navigationBarTextStyle":"black" } }
字段的含義
pages字段 —— 用于描述當(dāng)前小程序所有頁面路徑,這是為了讓微信客戶端知道當(dāng)前你的小程序頁面定義在哪個(gè)目錄。
window字段 —— 定義小程序所有頁面的頂部背景顏色,文字顏色定義等。
完整的配置信息請(qǐng)參考app.json配置
2.3 page.json
這里的page.json其實(shí)用來表示頁面目錄下的page.json這類和小程序頁面相關(guān)的配置。
開發(fā)者可以獨(dú)立定義每個(gè)頁面的一些屬性,如頂部顏色、是否允許下拉刷新等等。
頁面的配置只能設(shè)置app.json中部分window
配置項(xiàng)的內(nèi)容,頁面中配置項(xiàng)會(huì)覆蓋app.json的window
中相同的配置項(xiàng)。
屬性 | 類型 | 默認(rèn)值 | 描述 |
---|---|---|---|
navigationBarBackgroundColor | HexColor | #000000 | 導(dǎo)航欄背景顏色,如#000000 |
navigationBarTextStyle | String | white | 導(dǎo)航欄標(biāo)題顏色,僅支持black/white |
navigationBarTitleText | String | 導(dǎo)航欄標(biāo)題文字內(nèi)容 | |
backgroundColor | HexColor | #ffffff | 窗口的背景色 |
backgroundTextStyle | String | dark | 下拉 loading 的樣式,僅支持dark/light |
enablePullDownRefresh | Boolean | false | 是否全局開啟下拉刷新。 詳見Page.onPullDownRefresh |
onReachBottomDistance | Number | 50 | 頁面上拉觸底事件觸發(fā)時(shí)距頁面底部距離,單位為px。 詳見Page.onReachBottom |
disableScroll | Boolean | false | 設(shè)置為true則頁面整體不能上下滾動(dòng);只在頁面配置中有效,無法在app.json中設(shè)置該項(xiàng) |
三、視圖層
WXML(WeiXin Markup Language)是框架設(shè)計(jì)的一套標(biāo)簽語言,結(jié)合基礎(chǔ)組件、事件系統(tǒng),可以構(gòu)建出頁面的結(jié)構(gòu)。
3.1 數(shù)據(jù)綁定
3.1.1 普通寫法
<view> {{ message }} </view> Page({ data: { message: 'Hello MINA!' } })
3.1.2 組件屬性
簡(jiǎn)直和上面沒區(qū)別啊
<view id="item-{{id}}"> </view> Page({ data: { id: 0 } })
3.1.3 bool類型
不要直接寫 checked="false",其計(jì)算結(jié)果是一個(gè)字符串
<checkbox checked="{{false}}"> </checkbox>
3.2 運(yùn)算
3.2.1 三元運(yùn)算
<view hidden="{{flag ? true : false}}"> Hidden </view>
3.2.2 算數(shù)運(yùn)算
<view> {{a + b}} + {{c}} + d </view> Page({ data: { a: 1, b: 2, c: 3 } })
3.2.3 邏輯判斷
<view wx:if="{{length > 5}}"> </view>
3.2.4 字符串運(yùn)算
<view>{{"hello" + name}}</view> Page({ data:{ name: 'MINA' } })
3.2.5 注意
花括號(hào)和引號(hào)之間如果有空格,將最終被解析成為字符串
3.3 列表渲染
3.3.1 wx:for
項(xiàng)的變量名默認(rèn)為item
wx:for-item可以指定數(shù)組當(dāng)前元素的變量名
下標(biāo)變量名默認(rèn)為index
wx:for-index可以指定數(shù)組當(dāng)前下標(biāo)的變量名
<view wx:for="{{array}}"> {{index}}: {{item.name}}:{{item.age}} </view> Page({ data: { array: [{ name: 'foo', age: 18, }, { name: 'bar' 'age': 20, }] } })
3.3.2 wx:for
渲染一個(gè)包含多節(jié)點(diǎn)的結(jié)構(gòu)塊 block最終不會(huì)變成真正的dom元素
<block wx:for="{{[1, 2, 3]}}"> <view> {{index}}: </view> <view> {{item}} </view> </block>
3.3.3 wx:key
提高效率使用的
3.4 條件渲染
3.4.1 wx:if
在框架中,使用wx:if="{{condition}}"來判斷是否需要渲染該代碼塊:
<view wx:if="{{condition}}"> True </view>
3.4.2 hidden
<view hidden="{{condition}}"> True </view>
類似wx:if
頻繁切換 用hidden
不常使用 用wx:if
以上就是微信小程序配置視圖層數(shù)據(jù)綁定相關(guān)示例的詳細(xì)內(nèi)容,更多關(guān)于微信小程序配置視圖層數(shù)據(jù)綁定的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
JavaScript如何實(shí)現(xiàn)圖片處理與合成
這篇文章主要介紹了JavaScript如何實(shí)現(xiàn)圖片處理與合成,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05Bootstrap實(shí)現(xiàn)省市區(qū)三級(jí)聯(lián)動(dòng)(親測(cè)可用)
這篇文章主要為大家詳細(xì)介紹了Bootstrap實(shí)現(xiàn)省市區(qū)三級(jí)聯(lián)動(dòng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-07-07使用JSX實(shí)現(xiàn)Carousel輪播組件的方法(前端組件化)
做這個(gè)輪播圖的組件,我們先從一個(gè)最簡(jiǎn)單的 DOM 操作入手。使用 DOM 操作把整個(gè)輪播圖的功能先實(shí)現(xiàn)出來,然后在一步一步去考慮怎么把它設(shè)計(jì)成一個(gè)組件系統(tǒng)2021-04-04js實(shí)現(xiàn)div色塊拖動(dòng)錄制
這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)div色塊拖動(dòng)錄制,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-01-01如何基于filter實(shí)現(xiàn)網(wǎng)站整體變灰功能
這篇文章主要介紹了如何基于filter實(shí)現(xiàn)網(wǎng)站整體變灰功能,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04JS基于遞歸算法實(shí)現(xiàn)1,2,3,4,5,6,7,8,9倒序放入數(shù)組中的方法
這篇文章主要介紹了JS基于遞歸算法實(shí)現(xiàn)1,2,3,4,5,6,7,8,9倒序放入數(shù)組中的方法,涉及JS遞歸算法操作數(shù)組實(shí)現(xiàn)排序功能的相關(guān)技巧,需要的朋友可以參考下2017-01-01JS對(duì)象轉(zhuǎn)換為Jquery對(duì)象示例
JS對(duì)象轉(zhuǎn)換為Jquery對(duì)象的方便在于可以使用jquery的一些方法,下面有個(gè)示例,大家可以參考下2014-01-01javascript中將Object轉(zhuǎn)換為String函數(shù)代碼 (json str)
下面的代碼就是想將Object轉(zhuǎn)換為String函數(shù),需要的朋友可以參考下2012-04-04JavaScript實(shí)現(xiàn)檢查頁面上的廣告是否被AdBlock屏蔽了的方法
這篇文章主要介紹了JavaScript實(shí)現(xiàn)檢查頁面上的廣告是否被AdBlock屏蔽了的方法,其實(shí)就是利用JS檢測(cè)div的名稱和樣式名稱實(shí)現(xiàn),需要的朋友可以參考下2014-11-11