主干——插入JavaScript以操纵DOM的最佳位置是什么?

Backbone - What is the best location to insert JavaScript to manipulate the DOM

本文关键字:最佳位置 DOM 是什么 操纵 插入 JavaScript 主干      更新时间:2023-09-26

我希望JavaScript与我的骨干模板紧密集成,并且作为视图参考使用哪个模板,我相信这将是存储JavaScript的最佳位置,对吗?但如何?

特别地,我有一个JavaScript,它在视图呈现并准备好(不是事件)时设置DOM。我最初在模板中设置了这个脚本,但它只在应用程序第一次加载时被触发,当你通过Backbone的路由器导航回视图时,JavaScript没有被触发。

模板不是用来存储JavaScript的——它们应该是由视图呈现的愚蠢的html模板。

当你从视图中加载一个模板时,这个视图需要绑定所有将与你的应用交互的DOM元素。

如果你的视图只有绑定到DOM,这是一个很好的做法,所以它可以触发内部事件。

然后你可以创建"控制器",它将监听你的视图实例并与之交互,触发方法在DOM中做一些更改,或者准备视图使用的集合和模型。

但是,您可以使用许多其他库来组织代码逻辑加载。

我喜欢requirejs,但是commonjs有很多有用的选项。

将JavaScript放入模板中就像将它与HTML混合在一起。这不是一个好主意,因为你将逻辑和结构混合在一起,一旦应用程序增长,它将很难维护。

我用MVC风格组织我的代码,这使得它很容易增长和测试大型应用程序。例如,如果我想要模型/集合,它们在MODEL/COLLECTION文件夹中,CONTROLLER文件夹保存应用程序的逻辑部分,VIEW文件夹保存与DOM交互的文件,像Django一样,我为模板添加了一个Template文件夹,这是尽可能简单的。

解释一下你的问题:

当您用脚本加载模板时,您将执行该脚本。在此之后,您的模板将存储在内存中,这意味着您的脚本将永远不会再次被触发。你可以解决它,但你会做错。通过在Backbone中绑定视图渲染方法,可以在渲染后触发脚本。