diff --git a/router_tag.imba b/router_tag.imba index 7ac3285..f3e74b2 100644 --- a/router_tag.imba +++ b/router_tag.imba @@ -5,10 +5,19 @@ require './not_found/not_found' tag router + prop component watch: yes + def setup @r = R - @t = Imba:TAGS + @component = null + @cache = {} + + def componentDidSet val, prev + removeChild(prev) if prev + appendChild(val) if val + self def render - self:__:A = self:__:A || {} - ( self:__:A[@r:view] || self:__:A[@r:view] = @t[@r:view.toUpperCase]() ).end + var view = @data || @r:view + component = @cache[view] ||= Imba.createElement(view,null,null,self) + component.end