微信小程序-data和mark

简介: 经过之前的文章介绍,我们已经知道了,在事件当中如何进行数据的传递,那么在介绍当中有两种传递方式,那么这两种方式分别有什么区别呢,我们一起来看看吧~

经过之前的文章介绍,我们已经知道了,在事件当中如何进行数据的传递,那么在介绍当中有两种传递方式,那么这两种方式分别有什么区别呢,我们一起来看看吧~


我们先来看一个情况,就是看一下在元素结构有嵌套与无嵌套情况下我们拿到的currentTatget与target分别拿到的是那个元素信息。


如果不存在嵌套的情况,那么无论currentTatget还是target拿到的都是触发事件的那个元素。


index.wxml:

<view bind:tap="oneTap">我是view</view>


index.js:

Page({
  oneTap: function(event){
    console.log(event);
  }
})


好了,这个是没有嵌套结构关系时的情况,接下来我模拟一个嵌套关系的场景,代码如下:


index.wxml:

<view id="father" capture-bind:tap="onCaptureFatherTap" bind:tap="onFatherTap">
  <view id="son" capture-bind:tap="onCaptureSonTap" bind:tap="onSonTap"></view>
</view>


index.wxss:

/* pages/index/index.wxss */
#father {
    width: 400px;
    height: 400px;
    background: #0099FF;
}
#son {
    width: 320px;
    height: 320px;
    background: forestgreen;
}


index.js:

Page({
  onCaptureFatherTap: function(event){
    console.log("father捕获:", event);
  },
  onFatherTap: function(event){
    console.log("father冒泡:", event);
  },
  onCaptureSonTap: function(event){
    console.log("son捕获:", event);
  },
  onSonTap: function(event){
    console.log("son冒泡:", event);
  },
})


然后我们在微信小程序开发工具当中运行这个代码,点击 son,运行代码得到了每个捕获和冒泡方法当中的currentTatget与target信息分别是什么元素:


onCaptureFatherTap:


  • currentTatget:father
  • target:son


onFatherTap:

  • currentTatget:father
  • target:son


onCaptureSonTap:

  • currentTatget:son
  • target:son


onSonTap:

  • currentTatget:son
  • target:son


好了看了下运行结果之后,这里我来做一个小小的总结:


!> 无论是捕获还是冒泡

  • currentTatget:拿到的都是绑定这个事件的那个元素
  • target:拿到的都是触发事件的那个元素


好了,看了这个内容之后我现在来进行使用data或者mark来传递数据了。首先我使用data来进行传递,这个传递是数据我写在father组件当中,这个时候我如果想要在son当中拿到father当中的数据该如何获取这个是我的一个需求:


!> 好了这里我也不卖关子了,其实通过data-xxx绑定的数据,那么在son的监听方法中是拿不到father当中绑定数据的。


!> 但是呢,我们可以通过 mark,如果是通过mark:xxx绑定的数据,那么在son的监听方法中是可以拿到father数据的


!> mark:xxx 绑定的数据会将所有祖先元素子元素的数据都融合在一起


我们在father通过mark绑定一个数据然后在son当中也使用mark绑定一下数据就可以证明我说的这一点代码和效果如下图所示:


index.wxml:

<view mark:name="BNTang" id="father" capture-bind:tap="onCaptureFatherTap" bind:tap="onFatherTap">
  <view mark:age="18" id="son" capture-bind:tap="onCaptureSonTap" bind:tap="onSonTap"></view>
</view>

2105804-20230420004134460-810346798.png

目录
相关文章
|
10月前
|
小程序 JavaScript
微信小程序--data的赋值与取值的几种方式
微信小程序--data的赋值与取值的几种方式
575 0
|
11月前
|
存储 缓存 小程序
微信小程序的跨页面传参以及data-方法的相关细节
微信小程序的跨页面传参以及data-方法的相关细节
235 0
|
小程序
微信小程序:TypeError: Cannot read property ‘mark‘ of undefined
微信小程序:TypeError: Cannot read property ‘mark‘ of undefined
138 0
微信小程序:TypeError: Cannot read property ‘mark‘ of undefined
|
小程序
微信小程序修改data中对象的属性值
微信小程序修改data中对象的属性值
201 0
|
20天前
|
小程序 前端开发 API
微信小程序全栈开发中的异常处理与日志记录
【4月更文挑战第12天】本文探讨了微信小程序全栈开发中的异常处理和日志记录,强调其对确保应用稳定性和用户体验的重要性。异常处理涵盖前端(网络、页面跳转、用户输入、逻辑异常)和后端(数据库、API、业务逻辑)方面;日志记录则关注关键操作和异常情况的追踪。实践中,前端可利用try-catch处理异常,后端借助日志框架记录异常,同时采用集中式日志管理工具提升分析效率。开发者应注意安全性、性能和团队协作,以优化异常处理与日志记录流程。
|
20天前
|
小程序 安全 数据安全/隐私保护
微信小程序全栈开发中的身份认证与授权机制
【4月更文挑战第12天】本文探讨了微信小程序全栈开发中的身份认证与授权机制。身份认证包括手机号验证、微信登录和第三方登录,而授权机制涉及角色权限控制、ACL和OAuth 2.0。实践中,开发者可利用微信登录获取用户信息,集成第三方登录,以及实施角色和ACL进行权限控制。注意点包括安全性、用户体验和合规性,以保障小程序的安全运行和良好体验。通过这些方法,开发者能有效掌握小程序全栈开发技术。
|
20天前
|
小程序 前端开发 JavaScript
微信小程序全栈开发中的PWA技术应用
【4月更文挑战第12天】本文探讨了微信小程序全栈开发中PWA技术的应用,PWA结合Web的开放性和原生应用的性能,提供离线访问、后台运行、桌面图标和原生体验。开发者可利用Service Worker实现离线访问,Worker处理后台运行,Web App Manifest添加桌面图标,CSS和JavaScript提升原生体验。实践中需注意兼容性、性能优化和用户体验。PWA技术能提升小程序的性能和用户体验,助力开发者打造优质小程序。
|
10天前
|
小程序 API 数据安全/隐私保护
微信小程序开发中的一些常用标签
这些标签是微信小程序开发中的基础,开发者可以根据需要组合使用这些标签来构建小程序的界面。每个标签都有其属性和事件,可以通过属性来调整组件的样式和行为,通过事件来响应用户的操作。
25 5
|
7天前
|
JavaScript Java 测试技术
基于微信小程序校园订餐的设计与开发+ssm+vue.js附带文章和源代码设计说明文档ppt
基于微信小程序校园订餐的设计与开发+ssm+vue.js附带文章和源代码设计说明文档ppt
17 1
|
7天前
|
JavaScript Java 测试技术
“村游网”系统的微信小程序开发ssm附带文章和源代码设计说明文档ppt
“村游网”系统的微信小程序开发ssm附带文章和源代码设计说明文档ppt
19 0