4

不建议直接将 Bootstrap 与 React 一起使用,因为 Bootstrap 的 JavaScript 可能会直接改变 DOM,从而干扰 React 的 Virtual DOM 系统。有人可以对 Angular (2+) 说同样的话吗?

4

1 回答 1

1

React 的 Virtual DOM 术语被重载了。如果您的意思是 React Element - 一个描述 HTML 元素或子组件并在更改检测(协调)期间使用的 JavaScript 对象,那么不,Angular 没有等效项。它只解析一次模板,创建绑定并在更改检测期间处理这些绑定。您可以在我写的比较两个框架中的更改检测的文章中阅读更多相关信息:

...因为 Bootstrap 的 JavaScript 可能会直接改变 DOM,从而干扰 React 的虚拟 DOM 系统。有人可以对 Angular 说同样的话吗

是的,Angular 也可能如此。你必须小心其他库不要接触 Angular 创建的 DOM。第 3 方库只能使用他们自己创建的 DOM,但他们需要考虑 Angular 处理的 DOM 更改,例如使用其 DOM 元素破坏组件。如果第 3 方库将 DOM 节点附加到组件的视图中,并且 Angular 破坏了宿主 DOM 元素,那么您将遇到内存泄漏,因为第 3 方库将保存对不再在 DOM 中的节点的引用。Angular 提供了使用 DOM 的工具,你可以阅读更多关于它们的信息:

于 2018-10-09T08:15:42.253 回答