Javascript 为什么Vue.js使用VDOM?
,它在引擎盖下使用VDOM来呈现UI。据我所知,VDOM的发明主要是为了避免“跟踪依赖”。有了VDOM,就可以在不知道到底发生了什么变化的情况下协调应用程序的更大部分。因此,可以使用普通对象和数组来描述视图,只需将更改通知框架(如React中的Javascript 为什么Vue.js使用VDOM?,javascript,vue.js,rendering,frontend,Javascript,Vue.js,Rendering,Frontend,,它在引擎盖下使用VDOM来呈现UI。据我所知,VDOM的发明主要是为了避免“跟踪依赖”。有了VDOM,就可以在不知道到底发生了什么变化的情况下协调应用程序的更大部分。因此,可以使用普通对象和数组来描述视图,只需将更改通知框架(如React中的setState)。然后,比较两个VDOM树,并将所需的最小更改集应用于实际DOM 另一方面,Vue.js使用跟踪的依赖项。它确切地知道发生了什么变化,因此可以使用DOM绑定。此外,由于大多数Vue.js用户已经在使用模板语言,因此它并没有从VDOM提供的
setState
)。然后,比较两个VDOM树,并将所需的最小更改集应用于实际DOM
另一方面,Vue.js使用跟踪的依赖项。它确切地知道发生了什么变化,因此可以使用DOM绑定。此外,由于大多数Vue.js用户已经在使用模板语言,因此它并没有从VDOM提供的更大的灵活性中获益。那么为什么Evan决定使用VDOM呢?这个设计决策有几个方面
PureComponent
或实现shouldComponentUpdate
来绕过组件树的一部分。有了dep跟踪系统,我们可以自动更准确地检测需要更新的组件,因此即使是VDOM也可以从dep跟踪系统中获益
因此,将两者结合起来,我们可以从双方获得好处:)我想vdom将有助于服务器端渲染。您可以在这里阅读更多信息()模板语言可以在服务器上呈现,而无需使用VDOM抽象。您只需要将模板编译为返回字符串(或字符串流)的函数。太棒了!谢谢你的回答。我已经看过你在Nordic.js()上关于这个主题的精彩演讲,它已经涵盖了一些方面。