微信小程序-页面访问组件数据和方法

简介: 好了,结构搭建的差不多了,接下来就是来看关键的内容了,首先我们来看一下如何拿到一个自定义组件的实例,有两种方式,这两种方式的前提条件是,给这个组件设置一个标识,设置标识的方式可以是通过类名或者ID进行设置,然后通过这个标识得到组件实例。

首先,创建演示案例的组件,c-demo,在给我们的组件添加一个按钮,并且给这个按钮绑定一个点击事件:

<!-- 
  c-demo2.wxml
 -->
<button
bindtap="onCDemoTap"
type="primary"
>
我是c-demo按钮
</button>


JS:

// components/c-demo2/c-demo2.js
Component({
  /**
   * 组件的初始数据
   */
  data: {
    title: 'BNTang'
  },
  /**
   * 组件的方法列表
   */
  methods: {
    onCDemoTap(e) {
      console.log(e);
    }
  }
})


改造首页:

<!-- 
  index.wxml
 -->
<myDemo2/>
<button bindtap="onIndexTap">我是首页的按钮</button>


首页 JS 文件:

Page({
  onIndexTap(e) {
    console.log(e);
  }
});


获取组件实例

好了,结构搭建的差不多了,接下来就是来看关键的内容了,首先我们来看一下如何拿到一个自定义组件的实例,有两种方式,这两种方式的前提条件是,给这个组件设置一个标识,设置标识的方式可以是通过类名或者ID进行设置,然后通过这个标识得到组件实例。


?> 通过类名:

<!-- 
  index.wxml
 -->
<myDemo2 class="my-demo"/>
<button bindtap="onIndexTap">我是首页的按钮</button>


首页 JS 文件:

Page({
  onIndexTap(e) {
    console.log(this.selectComponent(".my-demo"));
  }
});


?> 通过ID

<!-- 
  index.wxml
 -->
<myDemo2 id="my-demo"/>
<button bindtap="onIndexTap">我是首页的按钮</button>


首页 JS 文件:

Page({
  onIndexTap(e) {
    console.log(this.selectComponent("#my-demo"));
  }
});


访问自定义组件的方法与数据


上面已经介绍过了如何获取组件的实例,这样子就可以通过该实例对象调用实例当中所对应的内容和获取对应的内容。


调用方法


c-demo 的 JS 文件,新增一个函数方法供外界调用测试使用:

// components/c-demo2/c-demo2.js
Component({
  methods: {
    myDemoTwoFn() {
      console.log("call myDemoTwoFn");
    }
  }
})


首页的 JS 文件:

Page({
  onIndexTap(e) {
    this.selectComponent("#my-demo").myDemoTwoFn();
  }
});


获取数据


首页的 JS 文件:

Page({
  onIndexTap(e) {
    console.log(this.selectComponent("#my-demo").data);
  }
});


总结

  • 想在页面中调用组件中的方法,我们可以给组件添加一个类名或者ID
  • 然后通过 this.selectComponent(“选择器”) 拿到组件实例对象
  • 然后再通过组件的实例对象调用组件的方法或者访问组件的数据即可
目录
相关文章
|
7月前
|
Web App开发 移动开发 小程序
公众号小程序H5网页像素流送UE5模型的方法分享
本文探讨了如何通过像素流送技术在小程序、公众号等平台展示复杂的3D模型(如UE5引擎开发的楼盘模型、数字孪生展厅)。该技术将GPU和CPU算力需求转移到服务器端,使用户侧无需高性能硬件即可流畅体验。通过Webrtc实现实时云渲染,确保毫秒级响应,且兼容多种浏览器。使用点量云流等产品级软件,老项目只需重新打包为EXE格式,即可轻松嵌入H5网页、小程序或公众号中,支持Unity、WebGL等多种3D应用及传统CAD模型。
237 1
|
8月前
|
缓存 小程序 API
微信小程序页面导航与路由:实现多页面跳转与数据传递
本文深入探讨微信小程序的页面导航与路由机制,介绍多种页面跳转方式如`wx.navigateTo`、`wx.redirectTo`、`wx.switchTab`等,并讲解通过URL、全局变量和事件传递数据的方法。结合案例实现多页面跳转与数据传递,帮助开发者掌握这一重要技能。
|
8月前
|
缓存 小程序 API
微信小程序网络请求与API调用:实现数据交互
本文深入探讨了微信小程序的网络请求与API调用,涵盖`wx.request`的基本用法、常见场景(如获取数据、提交表单、上传和下载文件)及注意事项(如域名配置、HTTPS协议、超时设置和并发限制)。通过一个简单案例,演示了如何实现小程序与服务器的数据交互。掌握这些技能将帮助你构建功能更丰富的应用。
|
小程序 数据可视化 JavaScript
微信小程序:轻松实现时间轴组件
本文介绍了如何在微信小程序中实现一个可视化时间轴组件。该组件适用于展示用户资金流动、投资结算等时间节点,帮助用户直观了解资金去向。时间轴支持自定义节点形状、显示序号、倒序排列等功能,并通过插槽灵活定义动态内容。文中详细介绍了组件的设计与使用方法,以及如何结合动态 slot 实现自定义操作。该组件为展示用户资金信息提供了美观、易用的解决方案。
462 1
微信小程序:轻松实现时间轴组件
|
小程序
微信小程序动态tabBar实现:基于自定义组件,灵活支持不同用户角色与超过5个tab自由组合(更新版)
微信小程序动态tabBar实现:基于自定义组件,灵活支持不同用户角色与超过5个tab自由组合(更新版)
1993 1
|
小程序 搜索推荐 API
微信小程序:自定义关注公众号组件样式
尽管关注公众号组件的样式固定且不可修改,但产品经理的需求却需要个性化的定制。在这种情况下,我们需要寻找解决方案,以满足这些特殊需求,尽管这可能有点棘手。
582 0
微信小程序:自定义关注公众号组件样式
|
JSON 小程序 JavaScript
uni-app开发微信小程序的报错[渲染层错误]排查及解决
uni-app开发微信小程序的报错[渲染层错误]排查及解决
2677 7
|
小程序 JavaScript 前端开发
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
2236 1
|
小程序 前端开发 测试技术
微信小程序的开发完整流程是什么?
微信小程序的开发完整流程是什么?
1998 7
|
7月前
|
人工智能 自然语言处理 小程序
技术小白如何利用DeepSeek半小时开发微信小程序?
通过通义灵码的“AI程序员”功能,即使没有编程基础也能轻松创建小程序或网页。借助DeepSeek V3和R1满血版模型,用户只需用自然语言描述需求,就能自动生成代码并优化程序。例如,一个文科生仅通过描述需求就成功开发了一款记录日常活动的微信小程序。此外,通义灵码还提供智能问答模式,帮助用户解决开发中的各种问题,极大简化了开发流程,让普通人的开发体验更加顺畅。
2120 11
技术小白如何利用DeepSeek半小时开发微信小程序?

热门文章

最新文章