微信小程序配置視圖層數(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
項的變量名默認為item
wx:for-item可以指定數(shù)組當(dāng)前元素的變量名
下標變量名默認為index
wx: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)文章
Bootstrap實現(xiàn)省市區(qū)三級聯(lián)動(親測可用)
這篇文章主要為大家詳細介紹了Bootstrap實現(xiàn)省市區(qū)三級聯(lián)動,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-07-07使用JSX實現(xiàn)Carousel輪播組件的方法(前端組件化)
做這個輪播圖的組件,我們先從一個最簡單的 DOM 操作入手。使用 DOM 操作把整個輪播圖的功能先實現(xiàn)出來,然后在一步一步去考慮怎么把它設(shè)計成一個組件系統(tǒng)2021-04-04如何基于filter實現(xiàn)網(wǎng)站整體變灰功能
這篇文章主要介紹了如何基于filter實現(xiàn)網(wǎng)站整體變灰功能,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-04-04JS基于遞歸算法實現(xiàn)1,2,3,4,5,6,7,8,9倒序放入數(shù)組中的方法
這篇文章主要介紹了JS基于遞歸算法實現(xiàn)1,2,3,4,5,6,7,8,9倒序放入數(shù)組中的方法,涉及JS遞歸算法操作數(shù)組實現(xiàn)排序功能的相關(guān)技巧,需要的朋友可以參考下2017-01-01javascript中將Object轉(zhuǎn)換為String函數(shù)代碼 (json str)
下面的代碼就是想將Object轉(zhuǎn)換為String函數(shù),需要的朋友可以參考下2012-04-04JavaScript實現(xiàn)檢查頁面上的廣告是否被AdBlock屏蔽了的方法
這篇文章主要介紹了JavaScript實現(xiàn)檢查頁面上的廣告是否被AdBlock屏蔽了的方法,其實就是利用JS檢測div的名稱和樣式名稱實現(xiàn),需要的朋友可以參考下2014-11-11