日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

微信小程序3-模板与配置

發(fā)布時(shí)間:2024/3/13 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 微信小程序3-模板与配置 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

模板與配置

(一)WXML模板語(yǔ)法

1.數(shù)據(jù)綁定

1.1 數(shù)據(jù)綁定的基本原則

1.2 在data中定義數(shù)據(jù)

1.3 Mustache語(yǔ)法格式

?1.4?Mustache語(yǔ)法的應(yīng)用場(chǎng)景

1.5 Mustache動(dòng)態(tài)綁定內(nèi)容

?1.6 Mustache動(dòng)態(tài)綁定屬性

1.7 Mustache三元運(yùn)算

?1.8 Mustache算數(shù)運(yùn)算

?2.事件綁定

2.1 事件概述

2.2? 小程序中常用的事件

?2.3事件對(duì)象的屬性列表

?2.4 target 和 currentTarget 的區(qū)別

2.5?bindtap 的語(yǔ)法格式

2.6 在事件處理函數(shù)中為data中的數(shù)據(jù)賦值

2.7 事件傳參

2.8 bindinput的語(yǔ)法格式

?2.9實(shí)現(xiàn)文本框和data之間的數(shù)據(jù)同步

3.條件渲染

3.1 wx:if / wx:elif / wx:else

?3.2 結(jié)合使用 wx:if

?3.3 hidden

?3.4 wx:if 與 hidden 的對(duì)比 (v-if / v-show)

4. 列表渲染

4.1 wx:for

4.2 手動(dòng)指定索引和當(dāng)前項(xiàng)的變量名

?4.3 wx:key 的使用

?(二)WXSS模板語(yǔ)法

1.wxss

1.1.wxss和css的關(guān)系

wss與css相比,wxss的擴(kuò)展特性主要有

2.rpx

2.1 什么是rpx尺寸單位

2.2 rpx的實(shí)現(xiàn)原理(解決屏幕適配的方案)

3.樣式導(dǎo)入

3.1 什么是樣式導(dǎo)入

3.2 @import語(yǔ)法

4.全局樣式和局部樣式

4.1 全局樣式

4.2 局部樣式

(三) 全局配置

1.全局配置文件及常用的配置項(xiàng)

1.1 小程序窗口組成部分

2. window節(jié)點(diǎn)常用的配置項(xiàng)

2.1?設(shè)置導(dǎo)航欄的標(biāo)題?navigationBarTitleText

2.2 設(shè)置導(dǎo)航欄的背景色?navigationBarBackgroundColor

2.3 設(shè)置導(dǎo)航欄的標(biāo)題顏色?navigationBarTextStyle

2.4 全局開(kāi)啟下拉刷新的功能?enablePullDownRefresh

2.5 設(shè)置下拉刷新時(shí)窗口的背景顏色?backgroundColor

2.6 設(shè)置下拉刷新時(shí)loading的樣式?backgroundTextStyle

2.7 設(shè)置上拉觸底的距離

3 tabBar?

3.1 tabBar

3.2 tabBar 的6個(gè)組成部分

4 tabBar節(jié)點(diǎn)的配置項(xiàng)

每個(gè)tab項(xiàng)的配置選項(xiàng)

(四) 頁(yè)面配置

1.頁(yè)面配置文件和全局配置文件的關(guān)系

2.頁(yè)面配置中常用的配置項(xiàng)

(五) 網(wǎng)絡(luò)數(shù)據(jù)請(qǐng)求

1. 小程序中網(wǎng)絡(luò)數(shù)據(jù)請(qǐng)求的限制

?2. 配置request合法域名

3.發(fā)起get請(qǐng)求

?4.發(fā)起post請(qǐng)求

?5.在頁(yè)面剛加載時(shí)請(qǐng)求數(shù)據(jù)

6.跳過(guò) request 合法域名校驗(yàn)

?7.關(guān)于跨域和ajax的說(shuō)明


模板與配置

(一)WXML模板語(yǔ)法

1.數(shù)據(jù)綁定

1.1 數(shù)據(jù)綁定的基本原則

  • 在data中定義數(shù)據(jù)
  • 在wxml中使用數(shù)據(jù)

1.2 在data中定義數(shù)據(jù)

在頁(yè)面對(duì)應(yīng)的.js文件中,把數(shù)據(jù)定義到data對(duì)象即可

1.3 Mustache語(yǔ)法格式

在data中的數(shù)據(jù)綁定到頁(yè)面中渲染,使用Mustache語(yǔ)法(雙大括號(hào))將變量包起來(lái)即可,語(yǔ)法格式:

注意:?Mustache語(yǔ)法即為vue中的插值表達(dá)式

?1.4?Mustache語(yǔ)法的應(yīng)用場(chǎng)景

  • 綁定內(nèi)容
  • 綁定屬性
  • 運(yùn)算( 三元運(yùn)算 / 算樹(shù)運(yùn)算等 )

1.5 Mustache動(dòng)態(tài)綁定內(nèi)容

?1.6 Mustache動(dòng)態(tài)綁定屬性

?注意: 在vue中數(shù)據(jù)的雙向綁定通過(guò) v-bind 實(shí)現(xiàn),但在小程序中不同,綁定內(nèi)容和綁定屬性都需要使用?Mustache 語(yǔ)法

1.7 Mustache三元運(yùn)算

?1.8 Mustache算數(shù)運(yùn)算

?2.事件綁定

2.1 事件概述

事件是渲染層到邏輯層的通訊方式,通過(guò)事件可以將用戶在 渲染層產(chǎn)生的行為,反饋到邏輯層進(jìn)行業(yè)務(wù)的處理

2.2? 小程序中常用的事件

?2.3事件對(duì)象的屬性列表

當(dāng)事件回調(diào)出發(fā)的時(shí)候,會(huì)收到一個(gè)事件對(duì)象event,它的詳細(xì)屬性如下表所示:

?2.4 target 和 currentTarget 的區(qū)別

target 是觸發(fā)事件的源頭組件 , currentTarget 是當(dāng)前事件所綁定的組件

點(diǎn)擊內(nèi)部的按鈕時(shí),點(diǎn)擊時(shí)間以冒泡的方式向外擴(kuò)散,也會(huì)觸發(fā)外層view?的 tap 事件處理函數(shù)

此時(shí)對(duì)于外部view來(lái)說(shuō):

  • e.target 指向的是觸發(fā)事件的源頭組件,因此,e.target 是內(nèi)部的按鈕組件
  • e.currentTarget 指向當(dāng)前正在出發(fā)事件的那個(gè)組件,因此,e.currentTarget 是當(dāng)前的view組件

2.5?bindtap 的語(yǔ)法格式

在小程序中,不存在html中的onclick鼠標(biāo)點(diǎn)擊事件,而是通過(guò)tap事件來(lái)響應(yīng)用戶的觸摸行為

  • 通過(guò)bindtap可以為組件綁定tap觸摸事件:

  • 在頁(yè)面的.js文件中定義對(duì)應(yīng)的事件處理函數(shù),事件參數(shù)通過(guò)形參event(一般寫(xiě)成e)來(lái)接收

2.6 在事件處理函數(shù)中為data中的數(shù)據(jù)賦值

通過(guò)調(diào)用 this.setData(dataObject) 方法,可以給頁(yè)面data中的數(shù)據(jù)重新賦值

?

2.7 事件傳參

小程序中的事件傳參比較特殊,不能在綁定事件的同時(shí)為事件處理函數(shù)傳遞參數(shù)

在vue中可以在綁定事件的時(shí)候進(jìn)行傳值:小程序和vue的區(qū)別

因?yàn)樾〕绦驎?huì)把bindtap的屬性值統(tǒng)一當(dāng)作事件名稱來(lái)處理,相當(dāng)于要調(diào)用一個(gè)名稱為 btnHandler(123)的事件處理函數(shù)

可以提供 data-* 自定義屬性傳參,其中 * 代表的是參數(shù)的名字,示例:

info會(huì)被解析為參數(shù)的名字 ; 數(shù)值2會(huì)被解析為參數(shù)的值

獲取參數(shù)的值: 在事件處理函數(shù)中,通過(guò)event.target.dataset.參數(shù)名 即可獲取到具體參數(shù)的值,示例:

?注意:傳參時(shí),data-info=" 2 "?代表string類型2 ;data-info=" {{ 2 }}?" 才代表number類型的數(shù)字2

2.8 bindinput的語(yǔ)法格式

在小程序中,通過(guò)input事件來(lái)響應(yīng)文本輸入框的輸入事件,語(yǔ)法格式為:

  • 通過(guò)bindinput可以為文本框綁定輸入事件

  • 在頁(yè)面的js文件中定義事件處理函數(shù)

?2.9實(shí)現(xiàn)文本框和data之間的數(shù)據(jù)同步

實(shí)現(xiàn)步驟:

  • 定義數(shù)據(jù)

  • 渲染結(jié)構(gòu)

  • 美化樣式

  • 綁定input事件處理函數(shù)

3.條件渲染

3.1 wx:if / wx:elif / wx:else

在小程序中,使用 wx:if = " {{ condition }} " 來(lái)判斷是否需要渲染該代碼塊

也可以用 wx:elifwx:else 來(lái)添加else判斷:

wx:if wx:elif都需要添加判斷條件 wx:else表示最后一種情況,不需要添加條件

?

?3.2 結(jié)合<block>使用 wx:if

如果要一次性控制多個(gè)組件的展示與隱藏,可以使用一個(gè)<block></block>標(biāo)簽將多個(gè)組件包裝起來(lái),并在<block>標(biāo)簽上使用 wx:if 控制屬性,示例:

注意:<block>并不是一個(gè)組件,它只是一個(gè)包裹性質(zhì)的容器,不會(huì)在頁(yè)面中做任何渲染.?

?3.3 hidden

在小程序中,直接使用 hidden = " {{ condition }}?" 也能控制元素的顯示與隱藏

?3.4 wx:if 與 hidden 的對(duì)比 (v-if / v-show)

(1)運(yùn)行方式不同

  • wx:if 以動(dòng)態(tài)創(chuàng)建和移除元素的方式控制元素的展示與隱藏
  • hidden 以切換樣式的方式 (類似于 display : none/block ;) 控制元素的顯示與隱藏

(2)使用建議

  • 頻繁切換時(shí),建議使用hidden
  • 控制條件復(fù)雜時(shí),建議使用 wx:if 搭配 wx:elif / wx:else 進(jìn)行展示與隱藏

4. 列表渲染

4.1 wx:for

通過(guò)wx:for可以根據(jù)指定的數(shù)組,循環(huán)渲染重復(fù)的數(shù)組,語(yǔ)法:

?默認(rèn)情況下,當(dāng)前循環(huán)項(xiàng)的索引用inndex表示,當(dāng)前循環(huán)項(xiàng)用item表示

4.2 手動(dòng)指定索引和當(dāng)前項(xiàng)的變量名

  • 使用 wx:for-index 可以指定當(dāng)前循環(huán)項(xiàng)的索引的變量名
  • 使用 wx:for-item 可以指定當(dāng)前項(xiàng)的變量名

示例:

?4.3 wx:key 的使用

類似于vue列表循環(huán)中的 :key ,小程序在實(shí)現(xiàn)列表渲染時(shí),也建議為渲染出來(lái)的列表指定唯一的key值,從而提高渲染效率,代碼示例:

注意:在指定key的時(shí)候外面不用包Mustache語(yǔ)法,直接將對(duì)應(yīng)的key值填充就可以,也建議將id或index作為key值

?(二)WXSS模板語(yǔ)法

1.wxss

wxss 是一套樣式語(yǔ)言,用于美化wxml的組件樣式,類似于網(wǎng)頁(yè)開(kāi)發(fā)中的css

1.1.wxss和css的關(guān)系

wxss具有css大部分特性,同時(shí),wxss還對(duì)css進(jìn)行了擴(kuò)充以及修改,以適應(yīng)微信小程序的開(kāi)發(fā)

wss與css相比,wxss的擴(kuò)展特性主要有

  • rpx尺寸單位
  • @import樣式導(dǎo)入

2.rpx

2.1 什么是rpx尺寸單位

rpx: 是微信小程序獨(dú)有的,用來(lái)解決屏適配的尺寸單位

2.2 rpx的實(shí)現(xiàn)原理(解決屏幕適配的方案)

rpx的實(shí)現(xiàn)原理非常簡(jiǎn)單 : 鑒于不同設(shè)備屏幕尺寸大小不同,為了實(shí)現(xiàn)屏幕的自動(dòng)適配,rpx把所有設(shè)備的屏幕,在寬度上等分750份, ( 即:當(dāng)前屏幕的總寬度為750rpx? )

小程序在不同設(shè)備上運(yùn)行的時(shí)候,底層會(huì)自動(dòng)把rpx的樣式單位換算成對(duì)應(yīng)的像素單位來(lái)渲染,從而實(shí)現(xiàn)屏幕適配

3.樣式導(dǎo)入

3.1 什么是樣式導(dǎo)入

使用wxss提供的@import語(yǔ)法,可以導(dǎo)入外聯(lián)樣式表

3.2 @import語(yǔ)法

@import ?" 外聯(lián)樣式表的相對(duì)路徑 "? ;?

4.全局樣式和局部樣式

4.1 全局樣式

定義在app.wxss中的樣式為全局樣式,作用于每個(gè)頁(yè)面

4.2 局部樣式

在頁(yè)面的 .wxss 文件中定義的樣式為局部樣式,只作用于當(dāng)前頁(yè)面

注意:

  • 當(dāng)全局樣式和局部樣式?jīng)_突時(shí),根據(jù)就近原則,局部樣式會(huì)覆蓋全局樣式
  • 當(dāng)局部樣式的權(quán)重大于或等于全局樣式的權(quán)重時(shí),才會(huì)覆蓋全局樣式

注意:

權(quán)重比較: !important > 內(nèi)斂樣式 > id > 類選擇器&屬性選擇器&偽類選擇器 > 元素選擇器&偽類選擇器 > 通配符 > 繼承

app.wxss => view:nth-child(1){ backgroung-color : blue?}

index.wxss => view{ background-color: pink }?

局部樣式不會(huì)覆蓋全局樣式,因?yàn)槿謽邮綑?quán)重高于局部樣式

(三) 全局配置

微信小程序配置文件_卷心菜007的博客-CSDN博客

1.全局配置文件及常用的配置項(xiàng)

小程序根目錄下的app.json文件就是小程序的全局配置文件,常用的配置項(xiàng):

  • pages : 記錄當(dāng)前小程序所有頁(yè)面的存放路徑
  • window : 全局設(shè)置小程序窗口的外觀
  • tabBar : 設(shè)置小程序底部的tabBar效果
  • style : 是否啟用新版的組件樣式?

1.1 小程序窗口組成部分

2. window節(jié)點(diǎn)常用的配置項(xiàng)

以navigationBar 開(kāi)頭的配置項(xiàng) => 配置導(dǎo)航欄

以background 開(kāi)頭的配置項(xiàng) => 配置窗口背景樣式

其余樣式配置項(xiàng) => 用來(lái)配置頁(yè)面效果的配置項(xiàng)

2.1?設(shè)置導(dǎo)航欄的標(biāo)題?navigationBarTitleText

設(shè)置步驟: app.json => window => navigationBarTitleText

"window" :{ "navigationBarTitleText" : "我的應(yīng)用" }

2.2 設(shè)置導(dǎo)航欄的背景色?navigationBarBackgroundColor

設(shè)置步驟: app.json => window =>?navigationBarBackgroundColor

"window" :{ "navigationBarBackgroundColor" : "#2b4b6b" }

注意: 導(dǎo)航欄顏色設(shè)置只支持十六進(jìn)制顏色設(shè)置

2.3 設(shè)置導(dǎo)航欄的標(biāo)題顏色?navigationBarTextStyle

設(shè)置步驟: app.json => window =>?navigationBarTextStyle

"window" :{ "navigationBarTextStyle" : "white" }

注意:?navigationBarTextStyle 導(dǎo)航欄標(biāo)題顏色的可選值只有black 和 white?

2.4 全局開(kāi)啟下拉刷新的功能?enablePullDownRefresh

設(shè)置步驟 : app.json => window => enablePullDownRefresh 的值設(shè)置為 true

"window" :{ "enablePullDownRefresh" : true } //默認(rèn)為false

注意: 在app.json中開(kāi)啟下拉刷新功能,會(huì)作用于每個(gè)小程序頁(yè)面, 在模擬器中下拉刷新存在誤差

2.5 設(shè)置下拉刷新時(shí)窗口的背景顏色?backgroundColor

當(dāng)全局開(kāi)啟了下拉刷新的功能后,默認(rèn)的窗口背景為白色.

設(shè)置步驟 : app.json => window => 為backgroundColor指定16進(jìn)制的顏色值

"window" :{ "backgroundColor" : " #efefef "?}?

2.6 設(shè)置下拉刷新時(shí)loading的樣式?backgroundTextStyle

當(dāng)全局開(kāi)啟了下拉刷新的功能后,默認(rèn)的窗口的loading 為白色.

設(shè)置步驟 : app.json => window => 為backgroundTextStyle指定 dark 值

"window" :{ "backgroundTextStyle" : " dark?"?}?

注意 :?backgroundTextStyle的可選值只有l(wèi)ight 和 dark?

2.7 設(shè)置上拉觸底的距離

概念: 上拉觸底是移動(dòng)端的專有名詞,通過(guò)手指在屏幕上的拉滑操作,從而加載更多數(shù)據(jù)的行為

設(shè)置步驟 : app.json => window => 為onReachBottomDistance 設(shè)置新的數(shù)值

注意: 默認(rèn)距離為50px,沒(méi)有特殊需求時(shí),保持默認(rèn)值即可

"window" :{ "onReachBottomDistance" : 100}?

3 tabBar?

3.1 tabBar

tabbar是移動(dòng)端應(yīng)用常見(jiàn)的頁(yè)面效果,用于實(shí)現(xiàn)多頁(yè)面的快速切換,小程序中通常將其分為:

  • 底部tabBar
  • 頂部tabBar

注意:

  • tabBar中只能配置最少2個(gè),最多5個(gè)tab標(biāo)簽
  • 當(dāng)渲染頂部tabBar時(shí),不顯示icon圖標(biāo),只顯示文本

3.2 tabBar 的6個(gè)組成部分

  • backgroundColor : tabBar的背景顏色
  • selsctedconPath : 選中時(shí)的圖片路徑
  • borderStyle : tabBar上邊框的顏色
  • iconPath :? 未選中時(shí)的圖片路徑
  • selectedColor : tab上的文字選中時(shí)的顏色
  • color : tab 上文字的默認(rèn)(未選中)顏色

4 tabBar節(jié)點(diǎn)的配置項(xiàng)

每個(gè)tab項(xiàng)的配置選項(xiàng)

?"tabBar" : {?

"list" :[ { "pagePath":"pages/index/index" , "text":"index" } ,

{?"pagePath":"pages/test/test" , "text":"test" } ]? ?}

(四) 頁(yè)面配置

1.頁(yè)面配置文件和全局配置文件的關(guān)系

  • 當(dāng)全局樣式和局部樣式?jīng)_突時(shí),根據(jù)就近原則,局部樣式會(huì)覆蓋全局樣式
  • 當(dāng)局部樣式的權(quán)重大于或等于全局樣式的權(quán)重時(shí),才會(huì)覆蓋全局樣式

2.頁(yè)面配置中常用的配置項(xiàng)

?注意: 并不是所有的頁(yè)面都是需要下拉刷新,不在app.json中定義下拉刷新,在設(shè)計(jì)頁(yè)面下拉刷新時(shí),將下拉刷新寫(xiě)在頁(yè)面配置中

message.json => { "enablePullDownRefresh" : true }

(五) 網(wǎng)絡(luò)數(shù)據(jù)請(qǐng)求

1. 小程序中網(wǎng)絡(luò)數(shù)據(jù)請(qǐng)求的限制

出于安全性方面的考慮,小程序官方對(duì)數(shù)據(jù)接口請(qǐng)求做出了限制:

  • 只能請(qǐng)求 HTTPS 類型的接口 , 不能請(qǐng)求HTTP類接口
  • 必須將接口的域名添加到信任列表中

?2. 配置request合法域名

?配置步驟:登錄微信小程序管理后臺(tái)=>開(kāi)發(fā)=>開(kāi)發(fā)設(shè)置=>服務(wù)器域名=>修改request合法域名

注意:

  • 域名只支持 https 協(xié)議
  • 域名不能使用 IP 地址或 localhost
  • 域名必須經(jīng)過(guò)ICP備案
  • 服務(wù)器域名一個(gè)月內(nèi)最多可申請(qǐng)五次

3.發(fā)起get請(qǐng)求

調(diào)用微信小程序官方提供的 wx:request() 方法,可以發(fā)起get請(qǐng)求,實(shí)例:

home.wxml配置

home.js配置,res.data是最后的真實(shí)數(shù)據(jù)

?4.發(fā)起post請(qǐng)求

調(diào)用微信小程序提供的 wx.request()方法,可以發(fā)起post數(shù)據(jù)請(qǐng)求,實(shí)例:

home.js配置,res.data是最后的真實(shí)數(shù)據(jù)

?5.在頁(yè)面剛加載時(shí)請(qǐng)求數(shù)據(jù)

在頁(yè)面剛加載的時(shí)候,自動(dòng)請(qǐng)求一些初始化的數(shù)據(jù),需要在頁(yè)面的onLoad事件中調(diào)用獲取數(shù)據(jù)的函數(shù),實(shí)例:

?注意: 通過(guò)this調(diào)用,this代表當(dāng)前頁(yè)面加載的的實(shí)例

6.跳過(guò) request 合法域名校驗(yàn)

如果后端程序員僅僅提供了http協(xié)議接口,暫時(shí)沒(méi)有提供https協(xié)議接口,此時(shí)為了不耽誤開(kāi)發(fā)進(jìn)度,我們可以在微信開(kāi)發(fā)者工具中,臨時(shí)開(kāi)啟 " 開(kāi)發(fā)環(huán)境不校驗(yàn)請(qǐng)求域名,TLS版本及HTTPS證書(shū)?" 選項(xiàng),

跳過(guò)request選項(xiàng).

注意 : 跳過(guò)request 合法域名校驗(yàn)的選項(xiàng),僅限在來(lái)發(fā)與調(diào)試階段使用

?7.關(guān)于跨域和ajax的說(shuō)明

跨域問(wèn)題只存在于基于瀏覽器的web開(kāi)發(fā)中,由于小程序的宿主環(huán)境不是瀏覽器,而是微信客戶端,所以小程序中不存在跨域問(wèn)題.

ajax技術(shù)的核心是依賴于瀏覽器中的 XMLHTTPRequest 這個(gè)對(duì)象,由于小程序的宿主環(huán)境是微信客戶端,所以小程序中不能叫做 " 發(fā)起ajax請(qǐng)求?" ,而是叫做" 發(fā)起網(wǎng)絡(luò)數(shù)據(jù)請(qǐng)求 "

總結(jié)

以上是生活随笔為你收集整理的微信小程序3-模板与配置的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。