您的位置:首页 > 汽车 > 新车 > 如何查询网站的建站工具_制作视频的网站软件_windows优化大师免费版_友情连接出售

如何查询网站的建站工具_制作视频的网站软件_windows优化大师免费版_友情连接出售

2025/3/9 23:33:09 来源:https://blog.csdn.net/qq_37388085/article/details/146116565  浏览:    关键词:如何查询网站的建站工具_制作视频的网站软件_windows优化大师免费版_友情连接出售
如何查询网站的建站工具_制作视频的网站软件_windows优化大师免费版_友情连接出售

事件传参:在触发事件时,将一些数据作为参数传递给事件处理函数的过程,就是事件传参;

在微信小程序中,我们经常会在组件上添加一些自定义数据,然后在事件处理函数中获取这些自定义数据,从而完成业务逻辑的开发,这个过程称为小程序的事件传参;

在组件上通过 data-* 定义需要传递的数据,其中 * 是自定义的属性,例如:<view data-id="100" bindtap="handler" />,代码中的 id 就是自定义的属性,属性值 100 是需要传递的数据,然后通过事件对象获取自定义的数据;

下面打开微信开发者工具演示一下事件传参的使用步骤,在演示完后讲解一下相关的注意事项:

  • 在 pges/cate/cate.wxml 文件中添加下面代码:

    <view><button bind:tap="btnHandler" data-id="1" data-name="tom">按钮</button>
    </view>
    

    绑定事件 btnHandler,自定义 id 和 name 数据;

  • 在 pages/cate/cate.js 文件中定义 btnHandle 事件处理函数:

      btnHandler(event){console.log(event)}
    
  • 在 pages/cate/cate.scss 文件中定义一下 view 的样式:

    view {display: flex;height: 300rpx;background-color: skyblue;align-items: center;
    }
    

在页面中点击按钮,在 console 中可以看到打印的事件对象信息,如下:

在这里插入图片描述
打开事件对象,可以看到在 currentTarget 和 target 中都能看到传递的数据信息,如下:

在这里插入图片描述在这里插入图片描述
这时候我们需要了解一下 currentTarget 和 target 的区别是什么:

  • currentTarget:事件绑定者,也就是指哪个组件绑定了当前事件处理函数;
  • target:事件触发者,也就是指哪个组件出发了当前事件处理函数;

在这个例子中,currentTarget 的事件绑定者是 btn 按钮,target 的事件触发者也是 btn 按钮;

接下来看一下 currentTarget 和 target 不是指向同一个组件的情况:

  • 在 pages/cate/cate.wxml 中添加下面代码:
<view bind:tap="parentHandler" data-parentid="1" data-parentname="tom"><button data-id="1" data-name="tom">按钮</button>
</view>
  • 在 pages/cate/cate.js 中添加下面代码:
 parentHandler (event) {console.log(event)}

刷新重新运行,清空 console 区域,点击按钮周围的蓝色区域(注意不要点击按钮),观察 console 打印的事件对象信息,如下:

在这里插入图片描述
可以看到,在打印的事件对象中,currentTarget 获得的数据是 parentid 和 parentname,可以知道当前的事件绑定者是 view,如下:

在这里插入图片描述
同样,target 获取的数据也是 parentid 和 parentname,可以知道当前事件的触发者也是 view,如下:

在这里插入图片描述
下面点击按钮(注意不要点击按钮外的蓝色区域),观察 console 打印的事件数据,可以发现,currentTarget 绑定的数据是 view 对应的自定义数据,如下:

在这里插入图片描述
再看一下 target 的数据,可以看到 target 中绑定的数据是 button 中对应的自定义数据,因为这里是点击按钮触发的事件,所以 target 的数据为 button 中定义的数据,如下:

在这里插入图片描述
接下来讲解一下两个注意事项:

  • 假如事件在传递参数的时候,自定义属性是由多个单词来组成的,单词与单词之间使用中划线(-)来分隔,获取事件对象的数据的时候需要使用驼峰格式,比如上面的 parentid 和 parentname 修改为中划线格式,如下:

    <view bind:tap="parentHandler" data-parent-id="1" data-parent-name="tom"><button data-id="1" data-name="tom">按钮</button>
    </view>
    

    使用中划线命名属性之后,我们在开发者模式中看一下如何获取对应的数据属性,打开 console 模式,点击按钮,在打印的数据中可以看到,对应的属性名变为了驼峰命名写法,如下:

    在这里插入图片描述
    在定义数据的时候,使用的是中划线,在获取数据的时候,使用驼峰格式;

    因此我们需要注意,当使用中划线命名单词的时候,获取事件对象的数据需要使用驼峰格式获取数据;

  • 假如事件在传递参数的时候,自定义参数使用驼峰命名,在获取事件对象的数据的时候,需要使用全小写的格式,如下:

    在这里插入图片描述

简单对上面的内容进行总结:

  • 事件传参使用 data-* 的格式;
  • event.currentTarget 是指事件绑定者,event.target 是指事件触发者;
  • 使用 data- 方法传递参数时,多个单词由中划线-连接时,获取事件数据时需要使用驼峰写法;
  • 使用 data- 方法传递参数时,多个单词由驼峰写法定义时,获取事件数据时需要使用全小写格式;

参考视频:尚硅谷微信小程序开发教程

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com