微信小程序behavior组件间代码共享

微信小程序中,behaviors是用于组件间代码共享的特性,
每个behavior可以包含一组属性、数据、生命周期函数和方法。
组件引用它时,它的属性、数据和方法会被合并到组件中,生命周期函数也会在对应时机被调用。

首先,你需要定义一个behavior,它是一个对象,可以包含properties、data、methods、lifetimes等字段,例如:

// my-behavior.js
module.exports = Behavior({
    
    
  properties: {
    
    
    myBehaviorProperty: {
    
    
      type: String
    }
  },
  data: {
    
    
    myBehaviorData: 'my-behavior-data'
  },
  methods: {
    
    
    myBehaviorMethod: function() {
    
    
      console.log('my-behavior-method')
    }
  },
  lifetimes: {
    
    
    created: function() {
    
    
      console.log('my-behavior-created')
    },
    attached: function() {
    
    
      console.log('my-behavior-attached')
    },
    ready: function() {
    
    
      console.log('my-behavior-ready')
    }
  }
})

然后,你需要在组件中引入写好的behavior,并添加到behaviors属性中,例如:

// my-component.js
var myBehavior = require('my-behavior')
Component({
    
    
  behaviors: [myBehavior],
  properties: {
    
    
    myProperty: {
    
    
      type: String
    }
  },
  data: {
    
    
    myData: 'my-component-data'
  },
  methods: {
    
    
    myMethod: function() {
    
    
      console.log('my-component-method')
    }
  },
  lifetimes: {
    
    
    created: function() {
    
    
      console.log('my-component-created')
    },
    attached: function() {
    
    
      console.log('my-component-attached')
    },
    ready: function() {
    
    
      console.log('my-component-ready')
    }
  }
})

最后,你就可以在组件中使用behavior中定义的属性、数据和方法了,例如:

// my-component.js
Component({
    
    
  // ...
  methods: {
    
    
    // ...
    useBehaviorDataAndMethod: function() {
    
    
      // 使用behavior中的数据
      console.log(this.data.myBehaviorData); // 输出'my-behavior-data'
      // 使用behavior中的方法
      this.myBehaviorMethod(); // 输出'my-behavior-method'
    }
  }
})

猜你喜欢

转载自blog.csdn.net/m0_53579196/article/details/131197539