我與Om/Clojurescript一起潛水到React,迄今爲止我的所有前端工作都與jQuery合作過,我在理解如何實現jQuery中的oneliner的簡單常見任務時遇到了很大的障礙。如何使用Om/Clojurescript(來自jQuery)實現React中的基本動畫?
舉個很簡單的例子,一個按鈕,切換菜單:
$('#hamburger-icon').click(function(){
$('.menu-can-toggle').toggleClass('active');
});
從我的理解,在作出反應,它是做DOM操作我無法實現這個簡單的jQuery功能React之外哪些可能導致問題,更正?
因此,我所做的,從我可以計算出,那我想象是不是最好的解決辦法了一句:
(defcomponent test-header [app owner]
(init-state [_]
{:open false})
(render-state [_ {:keys [open]}]
(dom/div #js{:id "menu-trigger" :className (str (when open "active"))
:onClick #(om/set-state! owner :open (not (om/get-state owner :open)))}
(dom/span {:class "line line-1"})
(dom/span {:class "line line-2"})
(dom/span {:class "line line-3"}))
(dom/ul {:id "menu"}
(dom/li "Item 1")
(dom/li "Item 2")
(dom/li "Item 3"))))
哪裏,點擊#menu-trigger
時,切換其:open
狀態。我現在很困惑我如何切換.active
類ul#menu
,或其他組件如何響應此操作。 (jQuery中類似於選擇$('.menu-can-toggle')
。
我相信這只是讓我的頭圍繞一個新的範式或接近這樣的任務的問題,但一切我發現似乎與React CSSTransitionGroup等極其複雜的,和我我只是想知道是否有一個標準的方式來實現簡單的任務,如(本質上是單行) jQuery以上