We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
先来介绍一下前端的历史:
最原始时代,是静态网页,那个时候几乎没有交互元素,更多是通过超链接连接一个又一个冰冷冷的网页
后来有了服务器动态渲染网页,用户可以提交表单然后重新渲染网页,不过是在服务器后台渲染的,那个时代的代表作是ASP、JSP
前端继续发展,有了异步请求API后,不刷新也可以和服务器交互了,操作DOM来更新网页成为了热门技术,代表作有jQuery等提供超级棒选择器语法的开源库
后来发展出后端服务器类似的MVC结构,诸多的交互元素的诞生,大家越来越意识到数据模型的重要性,都渴望数据模型一变更,那么视图也要跟着变更,毕竟操作DOM虽然简单,且也繁琐
不出所料,MVC架构衍生出了MVP、MVVM等高级架构,MVP打破了MVC中View原来对于Model的依赖,MVVM中通过binder把View和Model的同步逻辑自动化了。典型的代表有AngularJS还有后来的VueJS
重点来了,不想操作DOM API的梦想快要可以实现了,就是React的出现。React使用Virtual DOM作为在数据模型和真实 DOM之间的缓存,既有快速响应数据模型变更,又可以自动维护和更新真实 DOM
虽然VueJS 从 2.0 开始也使用了Virtual DOM构建,但是感觉更像MVVM架构一些。VueJS是在React之后出现的,但是有后起之秀的感觉,项目社区很活跃
维护状态,更新视图。
状态变更->重新渲染整个视图的方式可以稍微修改一下:用 JavaScript 对象表示 DOM 信息和结构,当状态变更的时候,重新渲染这个 JavaScript 的对象结构。
Virtual DOM 本质上就是在 JS 和 DOM 之间做了一个缓存。
项目的开始,前端工程师会使用Virtual DOM的语法,把心中的网页架构构建出来
这一步里,把Virtual DOM渲染出来,这个过程不需要我们书写任何HTML的结构
数据模型变化的时候,会直接作用在Virtual DOM上,而不是真实 DOM,然后通过对比、计算两颗新旧的Virtual DOM,得到更新真实 DOM的所有操作,并开始更新网页
virtual-dom
snabbdom
diff算法,仅同层比较,有三种操作:新增、移动、删除。
兄弟元素强烈推荐使用key属性以提高更新效率。
另外:VueJS和React的diff算法是有区别的。
深度剖析:如何实现一个 Virtual DOM 算法 界面之下:还原真实的MV*模式 一起理解 Virtual DOM 深度理解 Virtual DOM
The text was updated successfully, but these errors were encountered:
No branches or pull requests
概述
先来介绍一下前端的历史:
最原始时代,是静态网页,那个时候几乎没有交互元素,更多是通过超链接连接一个又一个冰冷冷的网页
后来有了服务器动态渲染网页,用户可以提交表单然后重新渲染网页,不过是在服务器后台渲染的,那个时代的代表作是ASP、JSP
前端继续发展,有了异步请求API后,不刷新也可以和服务器交互了,操作DOM来更新网页成为了热门技术,代表作有jQuery等提供超级棒选择器语法的开源库
后来发展出后端服务器类似的MVC结构,诸多的交互元素的诞生,大家越来越意识到数据模型的重要性,都渴望数据模型一变更,那么视图也要跟着变更,毕竟操作DOM虽然简单,且也繁琐
不出所料,MVC架构衍生出了MVP、MVVM等高级架构,MVP打破了MVC中View原来对于Model的依赖,MVVM中通过binder把View和Model的同步逻辑自动化了。典型的代表有AngularJS还有后来的VueJS
重点来了,不想操作DOM API的梦想快要可以实现了,就是React的出现。React使用Virtual DOM作为在数据模型和真实 DOM之间的缓存,既有快速响应数据模型变更,又可以自动维护和更新真实 DOM
理解浏览器渲染原理
Virtual DOM 存在的意义
维护状态,更新视图。
状态变更->重新渲染整个视图的方式可以稍微修改一下:用 JavaScript 对象表示 DOM 信息和结构,当状态变更的时候,重新渲染这个 JavaScript 的对象结构。
Virtual DOM 本质上就是在 JS 和 DOM 之间做了一个缓存。
Virtual DOM 实现的原理
第三方库
virtual-dom
snabbdom
diff算法
diff算法,仅同层比较,有三种操作:新增、移动、删除。
兄弟元素强烈推荐使用key属性以提高更新效率。
另外:VueJS和React的diff算法是有区别的。
参考
深度剖析:如何实现一个 Virtual DOM 算法
界面之下:还原真实的MV*模式
一起理解 Virtual DOM
深度理解 Virtual DOM
The text was updated successfully, but these errors were encountered: