使用Angular2+;一起使用JQuery?

使用Angular2+;一起使用JQuery?,jquery,performance,angular,Jquery,Performance,Angular,我正在使用Angular2。我想实现组面板可折叠。对于它,有很多使用JQuery的例子。但是,我想使用原始javascript实现它。要使用JQuery,我还必须导入JQuery库,这可能会导致一些额外的加载。我认为在我未来的发展中,除了小组讨论之外,可能还有一些DOM操作。我想知道使用javascript或JQuery哪个更好。我知道他们之间有些折衷。在性能方面,建议采用哪种方式。建议同时使用Angular2和JQuery?请给我一些建议 Angular希望能够控制DOM,其页面和数据交互原理

我正在使用Angular2。我想实现组面板可折叠。对于它,有很多使用JQuery的例子。但是,我想使用原始javascript实现它。要使用JQuery,我还必须导入JQuery库,这可能会导致一些额外的加载。我认为在我未来的发展中,除了小组讨论之外,可能还有一些DOM操作。我想知道使用javascript或JQuery哪个更好。我知道他们之间有些折衷。在性能方面,建议采用哪种方式。建议同时使用Angular2和JQuery?请给我一些建议

Angular希望能够控制DOM,其页面和数据交互原理与jQuery的结合很差(在jQuery中,您倾向于进行大量直接的DOM修改,而在Angular中,DOM几乎是作用域数据的副作用表示;在Angular的预期路径之外对DOM进行的修改可能会在下一个摘要中消失,或者会覆盖或破坏Angular所依赖的绑定。)

通过jQuery单独操作DOM是可能的,只要您非常小心地避免干扰Angular的生命周期——但这很容易出错,除非您对Angular的DOM生命周期以及更改什么是安全的,什么是不安全的有着非常深刻的理解。这几乎没有必要;使用Angular的生命周期几乎总是更好的n工具

(还要注意,Angular包括jqLite;您正在寻找的jQuery函数大部分时间已经可用,而无需安装完整的库。)


(如果必须使用jQuery,请将其保存在特定组件的
afterViewInit
函数中,并且不要尝试从一个组件中修改另一个组件的结果。)

这是一种很糟糕的方法。不要这样做。不,这不是关于如何一起使用Angular2+JQuery的问题。这是一个关于它是否是一种常见且好的方法的问题?我可以问一下你为什么这么认为吗?@AnnaLee作为答案发布了帖子(很抱歉,延迟了,所以在我键入它时离线了一段时间)非常感谢您的解释!!很好的解释@Daniel…我将jQuery添加到Angular应用程序包中,因为有一个第三方库(mergely)依赖于它(我在应用程序中不以任何其他方式使用jQuery)。它会影响其他不使用mergely的页面上的DOM呈现性能吗?