小程序组件生命周期和获取组件实例

组件实例

1 `selectComponent` 方法概述

selectComponent 是微信小程序提供的一个 API,用于在页面或组件内部获取子组件的实例。通过获取组件实例,可以:

  • 调用组件内部的方法;
  • 访问组件的内部数据;
  • 进行组件间的通信;

2 语法

// selector:选择器,支持传入组件的 id(使用 # 号)或组件的自定义标签名。
  const componentInstance = this.selectComponent(selector);
  if (componentInstance ) {
    componentInstance .sayHello();
  } else {
    console.error('未找到嵌套的子组件实例');
  }

组件生命周期

Component({
  // 定义组件的属性
  properties: {
    title: {
      type: String,
      value: '默认标题' // 默认值
    }
  },
  data: {
    // 组件内部数据
    initialized: false, // 用于跟踪是否初始化完成
    readyTimestamp: null // 用于记录组件 ready 的时间戳
  },
  
  // 生命周期函数
  lifetimes: {
    // 创建时调用
    created() {
      console.log('组件实例已创建');
   // 调用函数是用this
    this.customizefn('hello')

      // 初始化内部数据
      this.setData({
        initialized: true
      });
    },

    // 添加到节点树时调用
    attached() {
      console.log('组件已进入页面节点树');
      // 这里可以进行数据请求或与页面进行数据交互
    },

    // 渲染完成时调用
    ready() {
      console.log('组件已准备完毕');
      // 记录 ready 的时间戳
      this.setData({
        readyTimestamp: Date.now()
      });
    },

    // 移动时调用
    moved() {
      console.log('组件已被移动');
      // 处理组件被移动后的逻辑(较少用)
    },

    // 移除时调用
    detached() {
      console.log('组件已从页面中移除');
      // 这里可以进行一些清理工作,如清除定时器
    },

    // 捕获错误时调用
    error(err) {
      console.error('组件发生错误:', err);
      // 可以进行错误处理或上报
    }
  }
    // 自定义函数
   customizefn(val) {
    this.triggerEvent('val', val);
  }
});

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值