提供80+媒體資源
我司(si)提供(gong)互聯網廣告營(ying)銷服務(wu)超10年,擁有專業的人才儲備
【 服務熱線 】4009602809
一、快手信息流廣告投放-組件之間通信與事件
1.快手短視頻廣告(gao)組件間通(tong)信
組件(jian)間的基本(ben)通信方式有以下幾種。
ksml 數(shu)據綁定:用于父組(zu)件(jian)向子(zi)組(zu)件(jian)的指定屬性設(she)置(zhi)數(shu)據,僅能設(she)置(zhi) JSON 兼容數(shu)據(自基礎庫版本 2.0.9 開始,還可以在數(shu)據中包含函(han)數(shu))。具體在 組(zu)件(jian)模板和樣式 章節中介紹。
事(shi)件(jian):用(yong)于子組件(jian)向父(fu)組件(jian)傳(chuan)遞(di)數據,可(ke)以(yi)傳(chuan)遞(di)任意數據。
如果以上兩種方(fang)式不足以滿足需要,父組件還可以通過 this.selectComponent 方(fang)法獲取子組件實例對象(xiang),這樣(yang)就可以直接(jie)訪問組件的任(ren)意數據和方(fang)法。
2.快手推廣賬戶開通-監聽系統
事(shi)件(jian)系統是組(zu)件(jian)間通(tong)信的(de)主要方(fang)式(shi)之一(yi)。自定義組(zu)件(jian)可(ke)以(yi)觸發任意的(de)事(shi)件(jian),引(yin)用(yong)組(zu)件(jian)的(de)頁(ye)面可(ke)以(yi)監聽這些事(shi)件(jian)。關于事(shi)件(jian)的(de)基本概念和用(yong)法,參(can)見 事(shi)件(jian) 。
監(jian)(jian)聽(ting)自定義組件事件的(de)方(fang)法與監(jian)(jian)聽(ting)基礎組件事件的(de)方(fang)法完全(quan)一致:
代碼示例
<!-- 當(dang)自定義組件(jian)觸發“myevent”事件(jian)時,調(diao)用“onMyEvent”方法 --> <component-tag-name bindmyevent="onMyEvent" /> <!-- 或者可以寫成 --> <component-tag-name bind:myevent="onMyEvent" /> |
Page({ onMyEvent: function(e){ e.detail // 自定義組件觸發事(shi)件時提供的detail對(dui)象 } }) |
3.快手廣告平臺-觸發事件
自定(ding)義(yi)組(zu)件觸發(fa)事件時,需要使用 triggerEvent 方法,指定(ding)事件名、detail 對象和事件選項:
代碼示例
<!-- 在自(zi)定義(yi)組件中 --> <button bindtap="onTap">點擊這個按鈕將觸發“myevent”事件</button> |
Component({ properties: {}, methods: { onTap: function(){ var myEventDetail = {} // detail對象,提供給事件監聽(ting)函數 var myEventOption = {} // 觸發(fa)事件的選(xuan)項 this.triggerEvent('myevent', myEventDetail, myEventOption) } } }) |
觸發(fa)事件的選項包括:
選項名 | 類型 | 是否必填 | 默認值 | 描述 |
---|---|---|---|---|
bubbles | Boolean | 否 | false | 事件是否冒泡 |
composed | Boolean | 否 | false | 事件是否可以穿越組件邊界,為 false 時,事件將只能在引用組件的節點樹上觸發,不進入其他任何組件內部 |
capturePhase | Boolean | 否 | false | 事件是否擁有捕獲階段 |
關于冒(mao)泡和捕獲階(jie)段(duan)的概念,請(qing)閱讀事件章節中的相關說(shuo)明。
// 頁面(mian) page.ksml <another-component bindcustomevent="pageEventListener1"> <my-component bindcustomevent="pageEventListener2"></my-component> </another-component> |
// 組件 another-component.ksml <view bindcustomevent="anotherEventListener"> <slot /> </view> |
// 組件 my-component.ksml <view bindcustomevent="myEventListener"> <slot /> </view> |
// 組件 my-component.js Component({ methods: { onTap: function(){ this.triggerEvent('customevent', {}) // 只會觸發 pageEventListener2 this.triggerEvent('customevent', {}, { bubbles: true }) // 會依次觸發 pageEventListener2 、 pageEventListener1 this.triggerEvent('customevent', {}, { bubbles: true, composed: true }) // 會(hui)依次觸發(fa) pageEventListener2 、 anotherEventListener 、 pageEventListener1 } } }) |
組件生命周期
組件(jian)的生命周期,指(zhi)的是組件(jian)自(zi)身的一些函(han)數,這些函(han)數在特殊的時間(jian)點或(huo)遇到一些特殊的框架(jia)事(shi)件(jian)時被自(zi)動觸(chu)發(fa)。
其中,最(zui)重要的生命(ming)周期是(shi) created attached detached ,包(bao)含一(yi)個組件(jian)實例生命(ming)流程的最(zui)主要時間點。
組(zu)(zu)(zu)(zu)件(jian)實(shi)例剛剛被創建好(hao)時(shi), created 生命(ming)(ming)周(zhou)(zhou)期(qi)被觸(chu)發。此(ci)時(shi),組(zu)(zu)(zu)(zu)件(jian)數(shu)據 this.data 就(jiu)是在(zai)(zai)Component 構造(zao)器中定(ding)義的(de)數(shu)據data。 此(ci)時(shi)還不能調用(yong)(yong) setData 。 通常情況(kuang)下,這個(ge)生命(ming)(ming)周(zhou)(zhou)期(qi)只應該用(yong)(yong)于給組(zu)(zu)(zu)(zu)件(jian) this添加一些自定(ding)義屬性字段。 在(zai)(zai)組(zu)(zu)(zu)(zu)件(jian)完全初始(shi)化(hua)(hua)完畢、進入頁面(mian)節(jie)點(dian)樹后, attached 生命(ming)(ming)周(zhou)(zhou)期(qi)被觸(chu)發。快手廣告賬戶(hu)開(kai)通后,此(ci)時(shi), this.data 已被初始(shi)化(hua)(hua)為組(zu)(zu)(zu)(zu)件(jian)的(de)當(dang)前值。這個(ge)生命(ming)(ming)周(zhou)(zhou)期(qi)很(hen)有用(yong)(yong),絕大多(duo)數(shu)初始(shi)化(hua)(hua)工(gong)作可(ke)以在(zai)(zai)這個(ge)時(shi)機進行。 在(zai)(zai)組(zu)(zu)(zu)(zu)件(jian)離開(kai)頁面(mian)節(jie)點(dian)樹后, detached 生命(ming)(ming)周(zhou)(zhou)期(qi)被觸(chu)發。退出一個(ge)頁面(mian)時(shi),如果組(zu)(zu)(zu)(zu)件(jian)還在(zai)(zai)頁面(mian)節(jie)點(dian)樹中,則(ze) detached 會(hui)被觸(chu)發。 定(ding)義生命(ming)(ming)周(zhou)(zhou)期(qi)方法 生命(ming)(ming)周(zhou)(zhou)期(qi)方法可(ke)以直接定(ding)義在(zai)(zai) Component構造(zao)器的(de)第(di)一級參數(shu)中。
代碼示例
Component({ lifetimes: { attached: function() { // 在組件實例(li)進入頁(ye)面(mian)節點樹時執行(xing) }, detached: function() { // 在(zai)組件實(shi)例(li)被從頁面節點樹移除(chu)時執行 }, }, // 以下是舊式(shi)的定義方式(shi),可(ke)以保持對(dui) <2.2.3 版(ban)本基(ji)礎庫的兼容 attached: function() { // 在組(zu)件實例進入頁面(mian)節點樹時執行 }, detached: function() { // 在組件實例被從頁面節點樹移除時執行 }, // ... }) |
在(zai) behaviors 中(zhong)(zhong)也可以編寫生命(ming)(ming)周(zhou)期方法,同時(shi)不(bu)會與其他 behaviors 中(zhong)(zhong)的(de)同名生命(ming)(ming)周(zhou)期相互(hu)覆(fu)蓋。但要注意(yi),如(ru)果一個組件多(duo)次(ci)直接(jie)或間(jian)接(jie)引用同一個 behavior ,這個 behavior 中(zhong)(zhong)的(de)生命(ming)(ming)周(zhou)期函數在(zai)一個執行時(shi)機(ji)內只(zhi)會執行一次(ci)。
可用的全(quan)部生命(ming)周期如下表所(suo)示。
生命周期 | 參數 | 描述 |
---|---|---|
created | 無 | 在組件實例剛剛被創建時執行 |
attached | 無 在組件實例進入頁面節點樹時執行 | |
ready | 無 | 在組件在視圖層布局完成后執行 |
moved | 無 | 在組件實例被移動到節點樹另一個位置時執行 |
detached | 無 | 在組件實例被從頁面節點樹移除時執行 |
error | Object Error | 每當組件方法拋出錯誤時執行 |
組件所在頁面的生命周期
還有(you)一(yi)些特殊(shu)的(de)生(sheng)命周期(qi)(qi),它們并非與(yu)組(zu)件(jian)(jian)有(you)很強(qiang)的(de)關聯,但有(you)時(shi)組(zu)件(jian)(jian)需要獲(huo)知,以(yi)便組(zu)件(jian)(jian)內部(bu)處理。快手(shou)廣告平臺這樣(yang)的(de)生(sheng)命周期(qi)(qi)稱為“組(zu)件(jian)(jian)所在(zai)頁(ye)面的(de)生(sheng)命周期(qi)(qi)”,在(zai) pageLifetimes 定(ding)義段(duan)中定(ding)義。其中可(ke)用的(de)生(sheng)命周期(qi)(qi)包(bao)括(kuo):
生命周期 | 參數 | 描述 |
---|---|---|
show | 無 | 組件所在的頁面被展示時執行 |
hide | 無 | 組件所在的頁面被隱藏時執行 |
resize | Object Size | 組件所在的頁面尺寸變化時執行 |
Component({
pageLifetimes: {
show: function() {
// 頁面被展示
},
hide: function() {
// 頁面被隱藏
},
resize: function(size) {
// 頁面尺(chi)寸變化
}
}
})
快(kuai)手的廣(guang)告(gao)(gao)投放(fang)吸引了一大批人來做,現在很多人都不(bu)知道投放(fang)快(kuai)手廣(guang)告(gao)(gao)需要準備哪些材料(liao),其實是非常簡單的,找到一家代理公司(si)來做就(jiu)可(ke)以了,比如北京巨宣網絡(luo)廣(guang)告(gao)(gao)有限(xian)公司(si),現在在他(ta)家開戶是非常快(kuai)的,只需要向他(ta)們提供相關資質就(jiu)可(ke)以了,現在的費用是5k起充(chong),基(ji)本(ben)上(shang)能滿足各(ge)種廣(guang)告(gao)(gao)主的要求。咨詢熱線:4009602809
我司(si)提供(gong)互聯網廣告營(ying)銷服務(wu)超10年,擁有專業的人才儲備
擁有單(dan)賬(zhang)戶日消(xiao)耗百萬運(yun)營經驗,廣告賬(zhang)戶總量超1萬!
賬戶開通后,提供(gong)專業的(de)建站運營服務,百名(ming)運營服務!
如無需(xu)我司進行(xing)代運(yun)營,可提供較高返點政策,靠譜!
專注信(xin)息流廣告/直(zhi)播廣告/搜索廣告/短視頻(pin)廣告開戶服務!