微信小程序开发component中onload方法不执行

注意注意注意!用Component构造器构造界面时,js里的Page一定要改成Component!!!!!!!!!!!component的onload(attached)要写到lifetimes中,attached是component的onload方法,attached优于onload先执行的。

//index.js
const app = getApp()

Component({
  data: {
    index: [{
      pagePath: "/pages/index/index",
      iconPath: "/images/homeIcon.png",
      selectedIconPath: "/images/homeIconSelected.png",
      text: "首页"
    },
    {
      pagePath: "/pages/store/store",
      iconPath: "/images/storeIcon.png",
      selectedIconPath: "/images/storeIconSelected.png",
      text: "商城"
    },{
      pagePath: "/pages/personalCenter/personalCenter",
      iconPath: "/images/perIcon.png",
      selectedIconPath: "/images/perIconSelected.png",
      text: "我的"
    }]
  },
  /**
   * 组件的属性列表
   */
  properties: {

  },
  lifetimes:{
    attached:function (e) {
	// 这里写onLoad代码!!!!!!!!!!!!!!!!!!!!
	
    }
  },
  pageLifetimes: {
    show() {
      if (typeof this.getTabBar === 'function' &&
        this.getTabBar()) {
        this.getTabBar().setData({
          list:this.data.index,
          selected: 0
        })
      }
    }
  },
  methods:{
    
  },
  onShow: function () {
  },

  onLoad: function () {
  }
})

微信开发者工具中这样讲:

Component({

  behaviors: [],

  // 属性定义(详情参见下文)
  properties: {
    myProperty: { // 属性名
      type: String,
      value: ''
    },
    myProperty2: String // 简化的定义方式
  },

  data: {}, // 私有数据,可用于模板渲染

  lifetimes: {
    // 生命周期函数,可以为函数,或一个在methods段中定义的方法名
    attached: function () { },
    moved: function () { },
    detached: function () { },
  },

  // 生命周期函数,可以为函数,或一个在methods段中定义的方法名
  attached: function () { }, // 此处attached的声明会被lifetimes字段中的声明覆盖
  ready: function() { },

  pageLifetimes: {
    // 组件所在页面的生命周期函数
    show: function () { },
    hide: function () { },
    resize: function () { },
  },

  methods: {
    onMyButtonTap: function(){
      this.setData({
        // 更新属性和数据的方法与更新页面数据的方法类似
      })
    },
    // 内部方法建议以下划线开头
    _myPrivateMethod: function(){
      // 这里将 data.A[0].B 设为 'myPrivateData'
      this.setData({
        'A[0].B': 'myPrivateData'
      })
    },
    _propertyChange: function(newVal, oldVal) {

    }
  }

})
微信小程序,组件(component)是可复用的自定义组件。如果你需要在组件接收路径参数,通常是通过组件的属性(properties)来实现的。路径参数通常指的是在页面路径传递给页面的数据,这些数据可以通过页面的 `data` 对象传递给组件。这里提供一个简单的示例来说明如何操作: 1. 首先,在页面的 WXML 文件,你需要引入组件,并且通过数据绑定的方式传递路径参数给组件。 ```xml <!-- page.wxml --> <view> <my-component data-path-param="{{pathParam}}" /> </view> ``` 2. 在页面的 JS 文件,你需要定义路径参数,并将其通过 `this.setData` 方法绑定到页面的数据对象上。 ```javascript // page.js Page({ data: { pathParam: '' }, onLoad: function(options) { // 假设 pathParam 是从页面路径获取的参数 this.setData({ pathParam: options.pathParam }); } }); ``` 3. 在组件的 JS 文件,你可以通过定义属性来接收从页面传入的参数,并在组件的逻辑使用这些参数。 ```javascript // my-component.js Component({ properties: { dataPathParam: String }, methods: { someMethod: function() { // 在组件方法使用 pathParam console.log(this.properties.dataPathParam); } } }); ``` 4. 在组件的 WXML 文件,你可以使用传入的属性值。 ```xml <!-- my-component.wxml --> <view> 接收到的路径参数为:{{dataPathParam}} </view> ``` 通过以上步骤,组件就能够接收并使用从页面路径传递的参数了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

开开开心果儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值