国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

微信小程序wxml的數(shù)據(jù)和事件的綁定,以及條件和列表的渲染

這篇具有很好參考價值的文章主要介紹了微信小程序wxml的數(shù)據(jù)和事件的綁定,以及條件和列表的渲染。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

導(dǎo)航路線

關(guān)于微信小程序知識點一共做了六個博客,涵蓋大部分內(nèi)容,有想學(xué)習(xí)的可以按照以下順序查看
1.微信小程序的啟動和渲染過程(加組件分類和組件的基本使用以及API分類)
2.微信小程序wxml的數(shù)據(jù)和事件的綁定,以及條件和列表的渲染
3.微信小程序wxss相關(guān)介紹、全局配置和tabbar知識以及發(fā)送網(wǎng)絡(luò)數(shù)據(jù)請求(post,get)
4.微信小程序頁面導(dǎo)航、編程式導(dǎo)航、頁面事件、生命周期和WXS腳本
5.微信小程序自定義組件、組件的生命周期和組件通信(插槽)
6.微信小程序使用npm包、全局數(shù)據(jù)共享和分包

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

  1. 在data中定義數(shù)據(jù)
  2. 在wxml中使用數(shù)據(jù)
在data中定義頁面的數(shù)據(jù)

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

Page({
	data:{
		//字符串類型的數(shù)據(jù)
		info:'init data',
		//數(shù)組類型的數(shù)據(jù)
		msgList:[{msg:'hello'},{msg:'world'}]
	}
})

Mustache語法的格式
把data中的數(shù)據(jù)綁定到頁面中渲染,使用Mustache語法(雙大括號)將變量包起來即可。語法格式為:

<view> {{要綁定的數(shù)據(jù)名稱}} </view>

Mustache語法的應(yīng)用場景

  • 綁定內(nèi)容
  • 綁定屬性(如圖片的src屬性)
  • 運算(三元運算,算術(shù)運算等)

綁定屬性案例

Page({
	data:{
		info:'https://xiaoji.img',
	}
})
<image src="{{info}}"></image>

三元運算案例

Page({
	data:{
		randomNum:Math.random() * 10, //生成10以內(nèi)的隨機數(shù)
	}
})
<view>{{ randomNumber >=5 ? '隨機數(shù)大于五' : '隨機數(shù)小于五'}}</view>

2.事件綁定

事件的概念:
事件是渲染層到邏輯層的通訊方式。通過事件可以將用戶在渲染層產(chǎn)生的行為,反饋到邏輯層進行業(yè)務(wù)的處理。
小程序中常用的事件

類型 綁定方式 事件描述
tap bindtap或 bind:tap 手指觸摸后馬上離開,類似于HTML中的click事件
input bindinput 或 bind:input 文本框輸入事件
change bindchange或 bind:change 狀態(tài)改變時觸發(fā)

事件對象的屬性列表
當(dāng)事件回調(diào)觸發(fā)的時候,會收到一個事件對象event,它的詳細屬性如下表所示:

屬性 類型 說明
type String 事件類型
timeStamp Integer 頁面打開到觸發(fā)事件所經(jīng)過的毫秒數(shù)
target Object 觸發(fā)事件的組件的一些屬性值集合
currentTarget Object 當(dāng)前組件的一些屬性值集合
detail Object 額外的信息
touches Array 觸摸事件,當(dāng)前停留在屏幕中的觸摸點信息的數(shù)組
changedTouches Array 觸摸事件,當(dāng)前變化的觸摸點信息的數(shù)組

上面加粗的可以重點關(guān)注一下
target和currentTarget的區(qū)別:
target是觸發(fā)該事件的源頭組件,而currentTarget則是當(dāng)前事件所綁定的組件(類似html的事件委托,currentTarget為父組件,target就是子組件,子組件向外冒泡到父組件身上,父組件身上綁定了事件,此時這個事件的e.target就是內(nèi)部子組件,e.currentTarget就是當(dāng)前的綁事件的父組件)
微信小程序wxml的數(shù)據(jù)和事件的綁定,以及條件和列表的渲染

bingtap的語法格式:

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

  1. 通過bingtap,可以為組件綁定tap觸摸事件,語法如下:
<button type='primary' bindtap='btnTapHandler'>打印事件對象</button>
  1. 在頁面的.js文件中定義對應(yīng)的事件處理函數(shù),事件參數(shù)通過形參event(一般簡寫成e),來接收:
Page({
	btnTapHandler(e){
		//上面按鈕的tap事件處理函數(shù)
		console.log(e) //事件參數(shù)對象 e
	}
})

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

通過調(diào)用this.setData(dataObject)方法,可以給頁面data中的數(shù)據(jù)重新賦值,示例如下:

//頁面中的.js文件
Page({
	data:{
		count:0
	},
	//修改count的值
	changeCount(){
		this.setData({
			count:this.data.count+1
		})
	}
})
<button type='primary' bindtap='changeCount'>+1</button>

事件傳參

小程序中的事件比較特殊,不能在綁定事件的同時為事件處理函數(shù)傳遞參數(shù),例如,下面代碼將不能正常工作:

<button type=""primary bindtap='btnHandler(123)'>事件傳參</button>

因為小程序會把 bindtap的屬性值,統(tǒng)一當(dāng)作事件名稱來處理,相當(dāng)于要調(diào)用一個名稱為 btnHandler(123)的事件處理函數(shù)。

可以為組件提供data-自定義屬性傳參,其中代表的是參數(shù)的名字,示例代碼如下(里面的{{}}不能省略,不然得到的參數(shù)就是一個普通的字符串了):

<button type=""primary bindtap='btnHandler' data-info="{{234}}">事件傳參</button>

最終:

  • info會被解析為參數(shù)的名字
  • 數(shù)值⒉會被解析為參數(shù)的值

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

btnHandler(event){
	//dataset 是一個對象,包含了所有通過data-* 傳遞過來的參數(shù)項
	console.log(event.target.dataset)
	//通過dataset 可以訪問到具體的值
	console.log(event.target.dataset.info)
}

bindinput的語法格式

在小程序中,通過input事件來響應(yīng)文本框的輸入事件,語法格式如下:

  1. 通過binginput,可以為文本框綁定輸入事件
<input bindinput="inputHandler"></input>
  1. 在頁面的.js文件中,定義事件處理函數(shù)
inputHandler(e){
	//e.detail.value 是變化過后,文本框最新的值
	console.log(e.detail.value)
}
實現(xiàn)文本框和data之間的數(shù)據(jù)同步

實現(xiàn)步驟:

  1. 定義數(shù)據(jù)
  2. 渲染結(jié)構(gòu)
  3. 美化樣式
  4. 綁定input事件處理函數(shù)
1.定義數(shù)據(jù)
Page({
	data:{
		msg:'你好'
	}
})
2.渲染結(jié)構(gòu)
<input value="{{msg}}" bindinput="inputHandler"></input>
3.美化樣式
input{
	border:1px solid #eee;
	padding:5px;
	margin:5px;
	border-radius:3px;
}
4.綁定input事件處理函數(shù)
inputHandler(e){
	//e.detail.value 是變化過后,文本框最新的值
	//console.log(e.detail.value)
	this.setData({
		msg:e.detail.value
	})
}

3.條件渲染

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

<view wx:if="condition">True</input>

也可以用wx:elif 和 wx:else來添加else 判斷:

<view wx:if="{{type===1}}"></input>
<input wx:elif="{{type===2}}"></input>
<view wx:else>保密</view>

結(jié)合block使用wx:if

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

<block wx:if="{{true}}">
	<view>view1</view>
	<view>view2</view>
</block>

注意:< block>并不是一個組件,它只是一個包裹性質(zhì)的容器,不會在頁面中做任何渲染(也可以使用其他的塊包裹,但是其他的塊會被渲染到頁面上)

hidden

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

<view hidden="{{condition}}"> 條件為true隱藏,false顯示 </view>
wx:if與hidden的對比
  1. 運行方式不同
    • wx:if以動態(tài)創(chuàng)建和移除元素的方式,控制元素的顯示和隱藏
    • hidden以切換樣式的方式(display:none/block),控制元素的顯示與隱藏
  2. 使用建議
    • 頻繁切換時,建議使用hidden
    • 控制條件復(fù)雜時,建議使用wx:if搭配wx:elif、wx:else進行展示與隱藏的切換

4.列表渲染

通過wx:for可以根據(jù)指定的數(shù)組,循環(huán)渲染重復(fù)的組件結(jié)構(gòu),語法示例如下:

<view wx:for="{{array}}">
	索引是:{{index}} 當(dāng)前項是:{{item}}
</view>

默認情況下,當(dāng)前循環(huán)項的索引用index表示;當(dāng)前循環(huán)項用item表示

手動指定索引和當(dāng)前項的變量名*(了解即可)

  • 使用wx:for-index可以指定當(dāng)前循環(huán)項的索引的變量名
  • 使用wx:for-item可以指定當(dāng)前項的變量名
<view wx:for="{{array}}" wx:for-index="idx" wx:for-item="itemName">
	索引是:{{idx}} 當(dāng)前項是:{{itemName}}
</view>

wx:key的使用

類似于Vue列表渲染中的:key,小程序在實現(xiàn)列表渲染時,也建議為渲染出來的列表項指定唯一的 key值,從而提高渲染的效率,示例代碼如下:文章來源地址http://www.zghlxwxcb.cn/news/detail-495560.html

//data 數(shù)據(jù)
data:{
	userlist:[
		{id:1,name:"小紅"},
		{id:2,name:"小黃"},
		{id:3,name:"小白"}
	]
}


//wxml結(jié)構(gòu),wx:key里面不需要Mustache語法,不然報錯
<view wx:for="{{userlist}}" wx:key="id">{{item.name}}</view>

到了這里,關(guān)于微信小程序wxml的數(shù)據(jù)和事件的綁定,以及條件和列表的渲染的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 微信小程序?qū)W習(xí)之?dāng)?shù)據(jù)綁定,事件綁定,事件傳參與數(shù)據(jù)同步的學(xué)習(xí)記錄

    微信小程序?qū)W習(xí)之?dāng)?shù)據(jù)綁定,事件綁定,事件傳參與數(shù)據(jù)同步的學(xué)習(xí)記錄

    數(shù)據(jù)綁定的基本原則:在data中定義數(shù)據(jù),在wxml中使用數(shù)據(jù) 1.1. 在data中定義數(shù)據(jù) 在data中定義數(shù)據(jù),找到頁面對應(yīng)的.js文件,然后把數(shù)據(jù)定義到data中即可。 pages/list/list.js 1.2. 在wxml中渲染數(shù)據(jù) (mustache語法) mustache語法,插值表達式 將data中的數(shù)據(jù)綁定到頁面中渲染,使用mu

    2024年02月13日
    瀏覽(32)
  • 微信小程序數(shù)據(jù)綁定和事件觸發(fā)

    數(shù)據(jù)綁定和修改 微信小程序數(shù)據(jù)綁定是指將數(shù)據(jù)和視圖進行關(guān)聯(lián),當(dāng)數(shù)據(jù)發(fā)生變化時,視圖也會相應(yīng)地發(fā)生變化。微信小程序數(shù)據(jù)綁定主要有以下幾種方式: 雙向綁定:雙向綁定是指數(shù)據(jù)和視圖之間的雙向關(guān)聯(lián),當(dāng)數(shù)據(jù)發(fā)生變化時,視圖也會相應(yīng)地發(fā)生變化,反之亦然。在

    2024年02月10日
    瀏覽(92)
  • 微信小程序------WXML模板語法之條件渲染和列表渲染

    微信小程序------WXML模板語法之條件渲染和列表渲染

    目錄 前言 一、條件渲染 1.wx:if 2. 結(jié)合 使用 wx:if 3. hidden 4. wx:if 與 hidden 的對比 二、列表渲染 1. wx:for 2. 手動指定索引和當(dāng)前項的變量名* 3. wx:key 的使用 ? ? ? ? 上一期我們講解wxml模版語法中的數(shù)據(jù)綁定和事件綁定(上一期鏈接:微信小程序-----WXML模板語法之?dāng)?shù)據(jù)綁定與事件

    2024年01月16日
    瀏覽(33)
  • 微信小程序:tabbar、事件綁定、數(shù)據(jù)綁定、模塊化、模板語法、尺寸單位

    微信小程序:tabbar、事件綁定、數(shù)據(jù)綁定、模塊化、模板語法、尺寸單位

    目錄 1. tabbar 1.1 什么是tabbar ?1.2 配置tabbar? 2. 事件綁定 2.1 準(zhǔn)備表單 2.2 事件綁定 2.3 冒泡事件及非冒泡事件? 3. 數(shù)據(jù)綁定 3.1 官方文檔 4. 關(guān)于模塊化 5. 模板語法 6. 尺寸單位 下圖中標(biāo)記出來的部分即為tabbar: ? ?官方說明文檔: ? 說明: pagePath中指定的頁面,必須在app.jso

    2024年02月04日
    瀏覽(94)
  • 【微信小程序】-- WXML 模板語法 - 條件渲染 -- wx:if & hidden (十一)

    【微信小程序】-- WXML 模板語法 - 條件渲染 -- wx:if & hidden (十一)

    ?? 所屬專欄:【微信小程序開發(fā)教程】 ?? 作??者:我是夜闌的狗?? ?? 個人簡介:一個正在努力學(xué)技術(shù)的CV工程師,專注基礎(chǔ)和實戰(zhàn)分享 ,歡迎咨詢! ?? 歡迎大家:這里是CSDN,我總結(jié)知識的地方,喜歡的話請三連,有問題請私信 ?? ?? ?? ??大家好,又見面了,

    2024年02月05日
    瀏覽(38)
  • 微信小程序(二)--- 數(shù)據(jù)綁定,事件綁定,全局配置window,tabBar,網(wǎng)絡(luò)數(shù)據(jù)請求,request合法域名,GET,POST

    微信小程序(二)--- 數(shù)據(jù)綁定,事件綁定,全局配置window,tabBar,網(wǎng)絡(luò)數(shù)據(jù)請求,request合法域名,GET,POST

    目錄 一、WXML模板語法 1、數(shù)據(jù)綁定 (1)Mustache語法 2、事件綁定 ?(1)常用事件 ?(2)屬性列表 ?(3)target和currentTarget的區(qū)別 ?(4)bindtap語法格式 ?(5)在事件處理函數(shù)中為data中的數(shù)據(jù)賦值 (6)事件傳參 (7)bindinput的語法格式 (8)實現(xiàn)文本框(input)和data之間的數(shù)

    2024年02月04日
    瀏覽(21)
  • 微信小程序事件綁定

    微信小程序事件綁定

    事件是渲染層到邏輯層的通訊方式。通過事件可以將用戶在渲染層產(chǎn)生的行為,反饋到邏輯層進行業(yè)務(wù)的處理。 當(dāng)事件回調(diào)觸發(fā)的時候,會收到一個事件對象 event,它的詳細屬性如下表所示。 target 是觸發(fā)該事件的源頭組件,而 currentTarget 則是當(dāng)前事件所綁定的組件。 點擊內(nèi)

    2023年04月08日
    瀏覽(22)
  • 微信小程序(二)事件綁定

    微信小程序(二)事件綁定

    注釋很詳細,直接上代碼 上一篇 新增內(nèi)容: 點擊事件綁定 注冊頁面 設(shè)置頁面初始化數(shù)據(jù) 事件處理函數(shù)的實現(xiàn) 更新數(shù)據(jù)并更新視圖 源碼: index.wxml index.js 效果演示: 按鈕點擊前 按鈕點擊后 下一篇

    2024年01月17日
    瀏覽(20)
  • 【微信小程序】一文解憂,事件綁定

    【微信小程序】一文解憂,事件綁定

    ?? 觀眾老爺們好呀,小程序系列的新文章又來啦,即使是暑假也不能停止學(xué)習(xí)呀!上文我們詳細了解了微信小程序WXML模板語法中的數(shù)據(jù)綁定,小程序中的事件綁定也是我們必須掌握的方法。 ?? 那么現(xiàn)在我們就開始學(xué)習(xí)吧,小本本快拿出來記筆記呀。 首先我們來理清事件的

    2024年02月02日
    瀏覽(21)
  • 【小程序教程】微信小程序之事件綁定

    微信小程序的事件綁定是非常重要的一部分,它可以讓我們的小程序與用戶進行交互,實現(xiàn)各種功能,例如點擊按鈕、滑動頁面、輸入內(nèi)容等等。本篇博文將詳細介紹微信小程序如何進行事件綁定,并且給出相關(guān)的代碼示例,方便大家理解。 在微信小程序中,通過在標(biāo)簽上綁

    2024年02月04日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包