微信小程序

子组件事件中 触发父组件 监听
 
this.triggerEvent('myevent1', {}, {})
 
 
 
 
 

behavior 需要使用 Behavior() 构造器定义。

behaviors 是用于组件间代码共享的特性,类似于一些编程语言中的“mixins”或“traits”。

每个 behavior 可以包含一组属性、数据、生命周期函数和方法,组件引用它时,它的属性、数据和方法会被合并到组件中,生命周期函数也会在对应时机被调用。每个组件可以引用多个 behavior 。 behavior 也可以引用其他 behavior 。

 

代码示例:

// my-behavior.js
module.exports = Behavior({
  behaviors: [],
  properties: {
    myBehaviorProperty: {
      type: String
    }
  },
  data: {
    myBehaviorData: {}
  },
  attached: function(){},
  methods: {
    myBehaviorMethod: function(){}
  }
})

properties定义数据以驼峰命名
组件传递properties数据的时候 可以直接用properties变量名,加-的 必须要小写 大写显示 Null
<my-component demo-test="demoTest" my-behavior-property="behavior-property1" my-property="my-property" bindmyevent1="myEventListener">
</my-component>
 
 
 
  // my-behavior.js
module.exports = Behavior({
  behaviors: [],
  properties: {
    myBehaviorProperty: {
      type: String
    },
    demoTest: {
      type:String
    }
  },
  data: {
    myBehaviorData: "myBehaviorData"
  },
  attached: function () { },
  methods: {
    myBehaviorMethod: function () {
      console.log('log from my-behavior.js');
      var myEventDetail = {} // detail对象,提供给事件监听函数
      var myEventOption = {} // 触发事件的选项
      this.triggerEvent('myevent1', {}, {})
    }
  }
})



// components/component-tag-name.js
var myBehavior = require('my-behavior')
Component({
behaviors: [myBehavior],
properties: {
myProperty: {
type: String
}
},
data: {
myData: {}
},
attached: function () { },
methods: {
myMethod: function () { },
}
})
 
 
事件分为冒泡事件和非冒泡事件
 

事件分为冒泡事件和非冒泡事件:

  1. 冒泡事件:当一个组件上的事件被触发后,该事件会向父节点传递。
  2. 非冒泡事件:当一个组件上的事件被触发后,该事件不会向父节点传递。

 

 

posted @ 2018-09-15 18:37  haveProgress  阅读(198)  评论(0编辑  收藏  举报