天天看點

riot.js教程【三】通路DOM元素、使用jquery、mount輸入參數、riotjs标簽的生命周期

前文回顧 <a href="http://www.cnblogs.com/liulun/p/7681073.html">riot.js教程【二】元件撰寫準則、預處理器、标簽樣式和裝配方法;</a> <a href="http://www.cnblogs.com/liulun/p/7672876.html">riot.js教程【一】簡介;</a>

你可以通過this.refs對象通路dom元素

而且還有大量的屬性簡寫方式可以使用

比如:if="{...}",(有時候你需要對這些東西做一些特殊的處理才能用)

如果你想在riot标簽内部通路dom元素

你可能需要了解一下riot标簽生命周期相關的知識

你會注意到,mount方法還沒執行的時候,dom元素是不會被建立的

這就意味着,mount方法之前通路DOM元素,是不會成功的

請看如下代碼:

也就是說,你隻要在正确的函數中使用jquery是一點問題都沒有的;

再看下面的代碼(兩種檢索方式都是支援的,第一種就是jquery檢索DOM)

你可以在初始化的時候為riotjs标簽傳入更多參數,比如:

你可以傳遞任何類型的資料;

可以是一個簡單的object;

也可以是動态變化的資料存儲(flux store)

在标簽内部,你可以使用如下方法通路這些輸入參數

riotjs标簽按照如下步驟構造及渲染

Tag構造

Tag内部的js執行

Tag内部的HTML中的表達式被執行

Tag在浏覽器上渲染,mount事件觸發

一個riotjs标簽在浏覽器上渲染,mount事件觸發後,何時會被更新呢?

當一個Tag内的事件被觸發的時候(除非你設定了禁止更新變量e.preventUpdate為true)

當在Tag執行個體内部調用this.update()的時候

當在一個父元件執行個體内部調用this.update()的時候(該父元件下的所有子元件都會更新)

當調用riot.update()的時候(會觸發全局更新)

當一個元件執行更新後,會觸發update事件

你可以為一個事件設定多個監聽

繼續閱讀