ref 获取组件实例

1.14.0 版本开始,自定义组件支持使用 ref 获取自定义组件实例,可以使用 my.canIUse('component2') 做兼容。

  1. // /pages/index/index.js
  2. Page({
  3. plus() {
  4. this.counter.plus();
  5. },
  6. // saveRef 方法的参数 ref 为自定义组件实例,运行时由框架传递给 saveRef
  7. saveRef(ref) {
  8. // 存储自定义组件实例,方便以后调用
  9. this.counter = ref;
  10. },
  11. })
  1. <!-- /pages/index/index.axml -->
  2. <counter ref="saveRef" />
  3. <button onTap="plus">+</button>
说明
  • 使用 ref 绑定 saveRef 之后,会在组件初始化时触发 saveRef 方法。
  • saveRef 方法的参数 ref 为自定义组件实例,由框架传递给 saveRef 方法。
  • ref 同样可以用于父组件获取子组件的实例。
  1. // /components/counter/index.js
  2. Component({
  3. data: {
  4. counter: 0,
  5. },
  6. methods: {
  7. plus() {
  8. this.setData({ counter: this.data.counter + 1 })
  9. },
  10. },
  11. })
  1. <!-- /components/counter/index.axml -->
  2. <view>{{counter}}</view>