最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

微信小程序?qū)崿F(xiàn)傳遞多個(gè)參數(shù)與事件處理

 更新時(shí)間:2019年08月12日 09:35:58   作者:東邊的小山  
這篇文章主要介紹了微信小程序?qū)崿F(xiàn)傳遞多個(gè)參數(shù)與事件處理,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

前言

開(kāi)發(fā)過(guò)程中經(jīng)常會(huì)遇到從一個(gè)頁(yè)面攜帶數(shù)據(jù)到另一個(gè)頁(yè)面的情況,所以需要知道以下信息,什么是事件?有哪些傳遞方式?如果傳遞數(shù)組呢?如果傳遞對(duì)象呢?

一、事件

什么是事件

  • 事件是視圖層到邏輯層的通訊方式
  • 事件可以將用戶的行為反饋到邏輯層進(jìn)行處理
  • 事件可以綁定在組件上,當(dāng)達(dá)到觸發(fā)事件,就會(huì)執(zhí)行邏輯層對(duì)應(yīng)的事件處理函數(shù)
  • 事件對(duì)象可以攜帶額外信息,如id, dataset, touches

事件處理的使用

通過(guò)在wxml中設(shè)置bindtap、catchtap等,在js中寫(xiě)對(duì)應(yīng)的實(shí)現(xiàn)方法(不過(guò)這種方式目前有個(gè)缺點(diǎn),點(diǎn)擊的時(shí)候沒(méi)有點(diǎn)擊效果),使用方法如下

以下摘自微信小程序官方教程,在wxml中綁定一個(gè)事件

<view id="tapTest" data-hi="WeChat" bindtap="tapName"> Click me! </view>

然后在對(duì)應(yīng)的js中寫(xiě)出事件的具體實(shí)現(xiàn)

Page({
 tapName: function(event) {
  console.log(event)
 }
})

事件分類(lèi)

事件分為冒泡事件和非冒泡事件

  1. 冒泡事件:當(dāng)一個(gè)組件上的事件被觸發(fā)后,該事件會(huì)向父節(jié)點(diǎn)傳遞
  2. 非冒泡事件:當(dāng)一個(gè)組件上的事件被觸發(fā)后,該事件不會(huì)向父節(jié)點(diǎn)傳遞

一般使用場(chǎng)景中,例如一個(gè)列表的item中有多個(gè)點(diǎn)擊事件需要處理,就可以使用catchtap阻止向上冒泡

二、參數(shù)傳遞

參數(shù)傳遞有兩種方式

  1. 在wxml中使用navigator跳轉(zhuǎn)url傳遞參數(shù)
  2. 在wxml中綁定事件后,通過(guò)data-hi="參數(shù)"的方式傳遞

(1)navigator跳轉(zhuǎn)url傳遞字符串參數(shù)

代碼如下,將要傳遞到另一個(gè)頁(yè)面的字符串testId的值賦值到url中

<navigator class="test-item" url="../../pages/test/test?testId={{testData.testId}}">
  ...
</navigator>

在js頁(yè)面中onLoad方法中接收

Page({
  onLoad: function(options) {
    var testId = options.testId
    console.log(testId)
  }
})

(2)navigator跳轉(zhuǎn)url傳遞數(shù)組

如果一個(gè)頁(yè)面要將一個(gè)數(shù)組,如相冊(cè)列表傳遞到另一個(gè)頁(yè)面

<navigator class="test-item" url="../../pages/test/test?albumList={{testData.albumList}}">
  ...
</navigator>

傳遞到j(luò)s后從options中得到的是個(gè)字符串,每個(gè)圖片的url通過(guò)','分隔,所以此時(shí)還需要對(duì)其進(jìn)行處理,重新組裝為數(shù)組

Page({
  data: {
     // 相冊(cè)列表數(shù)據(jù)
    albumList: [],
  },  
  onLoad: function (options) {
    var that = this;
 
    that.setData({
      albumList: options.albumList.split(",")
    });
  }
})

(3)wxml中配置data-testid傳遞字符串

這種方式一般是在wxml中綁定事件,同時(shí)設(shè)置需要傳遞的數(shù)據(jù),如果需要傳遞多個(gè),可以寫(xiě)多個(gè)data-[參數(shù)]的方式進(jìn)行傳遞

<view bindtap="clickMe" data-testId={{testId}}">
  ...
</view>

在js頁(yè)面中自定義方法clickMe中接收

Page({
  clickMe: function(event) {
    var testId = event.currentTarget.dataset.testid;
    wx.navigateTo({
      url: '../../pages/test/test'
    })
  }
})

注意:通過(guò)wxml設(shè)置data-[參數(shù)名]傳遞參數(shù),[參數(shù)名]只能是小寫(xiě),不能有大寫(xiě)

(4)wxml中配置data-albumlist傳遞數(shù)組

其實(shí)原理同上,上代碼

<view bindtap="clickMe" data-albumlist={{testData.albumList}}">
  ...
</view>

在js頁(yè)面中自定義方法clickMe中接收

Page({
  clickMe: function(event) {
    var albumList = event.currentTarget.dataset.albumlist.split(",");
    wx.navigateTo({
      url: '../../pages/test/test'
    })
  }
})

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

永修县| 赞皇县| 保德县| 宜宾市| 盐城市| 潜山县| 汝南县| 贵州省| 汝州市| 新泰市| 克山县| 达尔| 兴仁县| 彭泽县| 五寨县| 湖南省| 秦皇岛市| 绥宁县| 青田县| 固安县| 庆城县| 德阳市| 郎溪县| 色达县| 韶山市| 绍兴县| 乌什县| 栾城县| 彭州市| 清苑县| 三河市| 灵寿县| 平原县| 宝应县| 广安市| 乌兰察布市| 咸阳市| 卢湾区| 武安市| 荆门市| 清丰县|