微信小程序配置視圖層數(shù)據(jù)綁定相關(guān)示例
官方文檔
https://developers.weixin.qq.com/miniprogram/dev/component/
一、小程序結(jié)構(gòu)目錄
小程序框架的目標是通過盡可能簡單、高效的方式讓開發(fā)者可以在微信中開發(fā)具有原生 APP 體驗的服務(wù)。
小程序框架提供了自己的視圖層描述語言WXML和WXSS,以及JavaScript,并在視圖層與邏輯層間提供了數(shù)據(jù)傳輸和事件系統(tǒng),讓開發(fā)者能夠?qū)W⒂跀?shù)據(jù)與邏輯。
1.1 小程序文件結(jié)構(gòu)和傳統(tǒng)web對比
| 結(jié)構(gòu) | 傳統(tǒng)web | 微信小程序 |
|---|---|---|
| 結(jié)構(gòu) | HTML | WXML |
| 樣式 | CSS | WXSS |
| 邏輯 | Javascript | Javascript |
| 配置 | 無 | JSON |
通過以上對比得出,傳統(tǒng)web是三層結(jié)構(gòu)。而微信小程序 是四層結(jié)構(gòu),多了一層配置.json
1.2 基本的項目目錄

二、配置介紹
2.1 配置介紹
一個小程序應(yīng)用程序會包括最基本的兩種配置文件。一種是全局的app.json和 頁面自己的page.json
注意:配置文件中不能出現(xiàn)注釋
2.2 全局配置app.json
app.json是當(dāng)前小程序的全局配置,包括了小程序的所有頁面路徑、界面表現(xiàn)、網(wǎng)絡(luò)超時時間、底部 tab 等。普通快速啟動項目里邊的app.json配置
{
"pages":[
"pages/index/index",
"pages/logs/logs"
],
"window":{
"backgroundTextStyle":"light",
"navigationBarBackgroundColor": "#fff",
"navigationBarTitleText": "WeChat",
"navigationBarTextStyle":"black"
}
}
字段的含義
pages字段 —— 用于描述當(dāng)前小程序所有頁面路徑,這是為了讓微信客戶端知道當(dāng)前你的小程序頁面定義在哪個目錄。
window字段 —— 定義小程序所有頁面的頂部背景顏色,文字顏色定義等。
完整的配置信息請參考app.json配置
2.3 page.json
這里的page.json其實用來表示頁面目錄下的page.json這類和小程序頁面相關(guān)的配置。
開發(fā)者可以獨立定義每個頁面的一些屬性,如頂部顏色、是否允許下拉刷新等等。
頁面的配置只能設(shè)置app.json中部分window配置項的內(nèi)容,頁面中配置項會覆蓋app.json的window中相同的配置項。
| 屬性 | 類型 | 默認值 | 描述 |
|---|---|---|---|
| navigationBarBackgroundColor | HexColor | #000000 | 導(dǎo)航欄背景顏色,如#000000 |
| navigationBarTextStyle | String | white | 導(dǎo)航欄標題顏色,僅支持black/white |
| navigationBarTitleText | String | 導(dǎo)航欄標題文字內(nèi)容 | |
| backgroundColor | HexColor | #ffffff | 窗口的背景色 |
| backgroundTextStyle | String | dark | 下拉 loading 的樣式,僅支持dark/light |
| enablePullDownRefresh | Boolean | false | 是否全局開啟下拉刷新。 詳見Page.onPullDownRefresh |
| onReachBottomDistance | Number | 50 | 頁面上拉觸底事件觸發(fā)時距頁面底部距離,單位為px。 詳見Page.onReachBottom |
| disableScroll | Boolean | false | 設(shè)置為true則頁面整體不能上下滾動;只在頁面配置中有效,無法在app.json中設(shè)置該項 |
三、視圖層
WXML(WeiXin Markup Language)是框架設(shè)計的一套標簽語言,結(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 組件屬性
簡直和上面沒區(qū)別啊
<view id="item-{{id}}"> </view>
Page({
data: {
id: 0
}
})
3.1.3 bool類型
不要直接寫 checked="false",其計算結(jié)果是一個字符串
<checkbox checked="{{false}}"> </checkbox>
3.2 運算
3.2.1 三元運算
<view hidden="{{flag ? true : false}}"> Hidden </view>
3.2.2 算數(shù)運算
<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 字符串運算
<view>{{"hello" + name}}</view>
Page({
data:{
name: 'MINA'
}
})
3.2.5 注意
花括號和引號之間如果有空格,將最終被解析成為字符串
3.3 列表渲染
3.3.1 wx:for
項的變量名默認為itemwx:for-item可以指定數(shù)組當(dāng)前元素的變量名
下標變量名默認為indexwx:for-index可以指定數(shù)組當(dāng)前下標的變量名
<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
渲染一個包含多節(jié)點的結(jié)構(gòu)塊 block最終不會變成真正的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)示例的詳細內(nèi)容,更多關(guān)于微信小程序配置視圖層數(shù)據(jù)綁定的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
JavaScript輸出所選擇起始與結(jié)束日期的方法
這篇文章主要介紹了JavaScript輸出所選擇起始與結(jié)束日期的方法,涉及javascript結(jié)合HTML5元素操作日期運算的相關(guān)實現(xiàn)技巧,需要的朋友可以參考下2017-07-07
JavaScript實現(xiàn)經(jīng)典排序算法之選擇排序
這篇文章主要為大家詳細介紹了JavaScript實現(xiàn)經(jīng)典排序算法之選擇排序,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-12-12
學(xué)習(xí)Javascript閉包(Closure)知識
這篇文章主要介紹了學(xué)習(xí)Javascript閉包(Closure)知識的相關(guān)資料,需要的朋友可以參考下2016-08-08
JavaScript直接調(diào)用函數(shù)與call調(diào)用的區(qū)別實例分析
這篇文章主要介紹了JavaScript直接調(diào)用函數(shù)與call調(diào)用的區(qū)別,結(jié)合額實例形式分析了JavaScript直接調(diào)用函數(shù)與call調(diào)用的基本用法、區(qū)別及相關(guān)注意事項,需要的朋友可以參考下2020-05-05
el表達式 寫入bootstrap表格數(shù)據(jù)頁面的實例代碼
這篇文章主要介紹了el表達式 寫入bootstrap表格數(shù)據(jù)頁面的實例代碼,非常不錯,具有參考借鑒價值,需要的的朋友參考下吧2017-01-01

