一、Behaviors
快手短视频广告投放-behaviors是用于组件间代码共享的特性,类似于一些编程语言中的“mixins”或“traits”。每个 behavior 可以包含一组属性、数据、生命周期函数和方法。组件引用它时,它的属性、数据和方法会被合并到组件中,生命周期函数也会在对应时机被调用。 每个组件可以引用多个 behavior ,behavior 也可以引用其他 behavior 。
1.Behavior(Object object)
注册一个 behavior,接受一个 Object 类型的参数。
参数:
| 定义段 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| properties | Object Map | 否 | 同组件的属性 |
| data | Object | 否 | 同组件的数据 |
| methods | Object | 否 | 同自定义组件的方法 |
| behaviors | String Array | 否 | 引入其它的 behavior |
| created | Function | 否 | 生命周期函数 |
| attached | Function | 否 | 生命周期函数 |
| ready | Function | 否 | 生命周期函数 |
| moved | Function | 否 | 生命周期函数 |
| detached | Function | 否 | 生命周期函数 |
代码示例

快手广告组件中使用
组件引用时,在 behaviors 定义段中将它们逐个列出即可。
代码示例

在上例中, my-component 组件定义中加入了 my-behavior ,而 my-behavior 中包含有 myBehaviorProperty 属性、 myBehaviorData数据字段、 myBehaviorMethod 方法和一个 attached 生命周期函数。这将使得 my-component中最终包含 myBehaviorProperty 、myProperty 两个属性, myBehaviorData 、myData两个数据字段,和myBehaviorMethod、myMethod 两个方法。当组件触发attached生命周期时,会依次触发my-behavior 中的 attached 生命周期函数和 my-component 中的attached生命周期函数。
2.快手短视频推广-字段的覆盖和组合规则
组件和它引用的 behavior 中可以包含同名的字段,对这些字段的处理方法如下:
如果有同名的属性或方法,组件本身的属性或方法会覆盖 behavior 中的属性或方法,如果引用了多个 behavior ,在定义段中靠后 behavior 中的属性或方法会覆盖靠前的属性或方法;
如果有同名的数据字段,如果数据是对象类型,会进行对象合并,如果是非对象类型则会进行相互覆盖;
生命周期函数不会相互覆盖,而是在对应触发时机被逐个调用。如果同一个 behavior 被一个组件多次引用,它定义的生命周期函数只会被执行一次。
3.内置 behaviors
自定义组件可以通过引用内置的 behavior 来获得内置组件的一些行为。
代码示例

在上例中,ks://form-field 代表一个内置 behavior ,它使得这个自定义组件有类似于表单控件的行为。内置behavior 往往会为组件添加一些属性。在没有特殊说明时,组件可以覆盖这些属性来改变它的 type或添加 observer。
ks://form-field.使自定义组件有类似于表单控件的行为。 form 组件可以识别这些自定义组件,快手广告开户-并在 submit事件中返回组件的字段名及其对应字段值。这将为它添加以下两个属性。
| 属性名 | 类型 | 描述 |
|---|---|---|
| name | String | 在表单中的字段名 |
| value | 任意 | 在表单中的字段值 |
ks://form-field-group
使 form 组件可以识别到这个自定义组件内部的所有表单控件。例如,页面的结构如下:

组件 custom-comp 自身结构如下:

如果组件 custom-comp 配置有:

此时,表单的 submit 事件的 value 中将包含 last 和 leaf两个字段。
ks://form-field-button
使 form 组件可以识别到这个自定义组件内部的 button 。快手广告如果自定义组件内部有设置了 form-type 的 button ,它将被组件外的 form 接受。例如,页面的结构如下:

组件 custom-comp 自身结构如下:

如果组件 custom-comp 配置有:

ks://component-export
使自定义组件支持 export 定义段。这个定义段可以用于指定组件被 selectComponent调用时的返回值。
快手信息流广告未使用这个定义段时,selectComponent将返回自定义组件的 this (插件的自定义组件将返回 null )。使用这个定义段时,将以这个定义段的函数返回值代替。
代码示例



组件间关系
定义和使用组件间关系
有时需要实现这样的组件:

快手推广账户-这个例子中, custom-ul 和 custom-li 都是自定义组件,它们有相互间的关系,相互间的通信往往比较复杂。此时在组件定义时加入relations定义段,可以解决这样的问题。示例:
Component({ relations: { './custom-li': { type: 'child', // 关联的目标节点应为子节点 linked: function(target) { // 每次有custom-li被插入时执行,target是该节点实例对象,触发在该节点attached生命周期之后 }, linkChanged: function(target) { // 每次有custom-li被移动后执行,target是该节点实例对象,触发在该节点moved生命周期之后 }, unlinked: function(target) { // 每次有custom-li被移除时执行,target是该节点实例对象,触发在该节点detached生命周期之后 } } }, methods: { _getAllLi: function(){ // 使用getRelationNodes可以获得nodes数组,包含所有已关联的custom-li,且是有序的 var nodes = this.getRelationNodes('path/to/custom-li') } }, ready: function(){ this._getAllLi() } }) |
// path/to/custom-li.js Component({ relations: { './custom-ul': { type: 'parent', // 关联的目标节点应为父节点 linked: function(target) { // 每次被插入到custom-ul时执行,target是custom-ul节点实例对象,触发在attached生命周期之后 }, linkChanged: function(target) { // 每次被移动后执行,target是custom-ul节点实例对象,触发在moved生命周期之后 }, unlinked: function(target) { // 每次被移除时执行,target是custom-ul节点实例对象,触发在detached生命周期之后 } } } }) |
注意:必须在两个组件定义中都加入 relations 定义,否则不会生效。
关联一类组件
有时,需要关联的是一类组件,如:
<custom-form> <view> input <custom-input></custom-input> </view> <custom-submit> submit </custom-submit> </custom-form> |
custom-form 组件想要关联 custom-input 和 custom-submit 两个组件。此时,如果这两个组件都有同一个 behavior:
// path/to/custom-form-controls.js module.exports = Behavior({ // ... }) // path/to/custom-input.js var customFormControls = require('./custom-form-controls') Component({ behaviors: [customFormControls], relations: { './custom-form': { type: 'ancestor', // 关联的目标节点应为祖先节点 } } }) |
// path/to/custom-submit.js var customFormControls = require('./custom-form-controls') Component({ behaviors: [customFormControls], relations: { './custom-form': { type: 'ancestor', // 关联的目标节点应为祖先节点 } } }) |
则在relations关系定义中,可使用这个 behavior 来代替组件路径作为关联的目标节点:
// path/to/custom-form.js var customFormControls = require('./custom-form-controls') Component({ relations: { 'customFormControls': { type: 'descendant', // 关联的目标节点应为子孙节点 target: customFormControls } } }) |
relations 定义段
relations 定义段包含目标组件路径及其对应选项,可包含的选项见下表。
| 选项 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| type | String | 是 | 目标组件的相对关系,可选的值为 parent 、 child 、 ancestor 、 descendant |
| linked | Function | 否 | 关系生命周期函数,当关系被建立在页面节点树中时触发,触发时机在组件 attached 生命周期之后 |
| linkChanged | Function | 否 | 关系生命周期函数,当关系在页面节点树中发生改变时触发,触发时机在组件 moved 生命周期之后 |
| unlinked | Function | 否 | 关系生命周期函数,当关系脱离页面节点树时触发,触发时机在组件 detached 生命周期之后 |
| target | String | 否 | 如果这一项被设置,则它表示关联的目标节点所应具有的 behavior,所有拥有这一 behavior 的组件节点都会被关联 |
其实投放快手广告开户是非常简单的,一般我们自己开户会比较繁琐,而且会有一些疏忽,或者不知道需要的资质,而延误了广告上线的时间,所以我们都会找到快手广告代理,比如王尘宇广告有限公司,只需要提供行业相关资质就可以了,开户非常快,应该需要1-3天的时间,自己开户可能就需要更久了,巨宣广告咨询电话是:15502933391
文章均来自互联网如有不妥请联系作者删除QQ:314111741 地址:http://www.mqs.net/post/8890.html
添加新评论