1. 程式人生 > 其它 >微信小程式----簡易雙向繫結

微信小程式----簡易雙向繫結

技術標籤:微信小程式微信小程式

簡易雙向繫結

基礎庫 2.9.3 開始支援,低版本需做相容處理。

在 WXML 中,普通的屬性的繫結是單向的。例如:

<input value="{{value}}" />

在【基礎庫 2.9.3 】之前,屬性的繫結是單向的,在上邊的例項中在檢視層修改value,只會改變檢視層的value,不會對邏輯層的value(this.data.value)進行修改。但是又需要同時修改邏輯層value(this.data.value),怎麼做呢?就是採用input元件的bindinput觸發事件實現。

實現單向資料的雙向繫結

單向資料的WXML

<input bindinput="getCurrentValue" value="{{value}}" />

單向資料的JS

getCurrentValue(e){
	this.setData({value: e.detail.value})
}

實現原理:通過觸發bindinput事件,實時監聽value的值,然後通過微信小程式提供的this.setData方法,同時對邏輯層(this.data.value)和檢視層(value)進行修改。這樣就實現資料的雙向繫結!

簡易雙向繫結

<input model:value="{{value}}" />

微信小程式提供的簡易雙向繫結,在輸入框修改value的時候,邏輯層(this.data.value)和檢視層(value)就會同時進行修改,優化了呼叫this.setData的消耗!

注意

  1. 只能是一個單一欄位的繫結;
  2. 目前,尚不能 data 路徑。

反例(不支援)

<input model:value="值為 {{value}}" />
<input model:value="{{ a + b }}" />
<input model:value="{{ a.b }}" />

WXRUI體驗二維碼

WXRUI體驗碼

如果文章對你有幫助的話,請開啟微信掃一下二維碼,點選一下廣告,支援一下作者!謝謝!

其他

我的部落格,歡迎交流!

我的CSDN部落格,歡迎交流!

微信小程式專欄

前端筆記專欄

微信小程式實現部分高德地圖功能的DEMO下載

微信小程式實現MUI的部分效果的DEMO下載

微信小程式實現MUI的GIT專案地址

微信小程式例項列表

前端筆記列表

遊戲列表