Mithril和jQuery如何相互交互?

我正在使用Mithril作为我们的MVC框架&我想利用丰富的JQuery / Jquery UI功能。当我将jQuery与Mithril结合起来时,我想了解“Do’s and Do not’s”

我理解的是,我可以使用Mithril配置来访问真实的DOM元素&绑定到各种jQuery函数安全。

Using jQuery UI functions with Mithril

但是,如何在类或ids上使用jQuery选择器来定位真正的DOM元素,如

附加一个jQuery日期选择器

  beforeShow: function(input, inst) {
   $('#ui-datepicker-div').addClass("mydatepicker");
  },

或隐藏div

 $("#mydiv").hide();

导致$(‘blah’)===未定义的进度的危险是什么?

真的很想了解这两个组件如何/应该相互交互。

简而言之,所有配置函数都保证在DOM树创建后运行。所以从配置中可以调用$(bla),而不用担心元素是否被绘制。

使用Mithril的注意事项(或者说,任何允许子模板被安装和卸载的系统)是可以通过条件逻辑从DOM中删除元素。因此,建议您将配置附加到要受jQuery插件影响的元素,或者在函数中包装元素子树,以使其更明显的是使用querySelector的配置适用于特定范围的元素。

对于大量的jQuery调用,如果正在查询的元素是否存在,那么实际上并不重要(例如$(“。foo”)。如果页面中没有.foo存在,则hide()根本不执行任何操作)。

要关心的主要事情是,您不想从DOM本身驱动太多的状态(这在jQuery中有些习惯)。例如,切换面板的可见性可能是可以在jQuery中更快地完成的事情,但是如果规范数据源是DOM中的CSS类,则从页面加载到达可见和不可见状态更困难它由jQuery代码控制,而不是单向流入视图的视图模型标志。

翻译自:https://stackoverflow.com/questions/27139920/how-does-mithril-and-jquery-interact-with-each-other

转载注明原文:Mithril和jQuery如何相互交互?