前端框架 渐进式框架
渐进式框架的大概意思就是你可以只用我的一部分,而不是用了我这一点就必须用我的所有部分。
勿喷! 快乐与知识并存! 嘻嘻!
初始化及挂载
在new vue() 之后。 Vue 会调用 _init 函数进行初始化 也就是这里的init 过程,它会初始化生命周期,事件,props,methods,data,compited与watch等。其中最重要的是通过Object.defineProperty 设置setter 与getter 函数 ,用来实现[响应式]以及【依赖收集】
初始化之后 调用¥mount会挂载组件 如果运行时编译 即不存在render function 但是存在 template 的情况,需要进行【编译】步骤
编译
compile编译可以分成 parse ( 解析) optimize(优化) 与generate (生成) 三个阶段 最终到(渲染)render function。
parse
会用正则等方式解析 template 模板中的指令,class style 等数据 ,形成AST
拓展:
什么是AST在Vue的mount过程中,template会被编译成AST语法树,AST是指抽象语法树(abstract syntax tree或者缩写为AST),或者语法树(syntax tree),是源代码的抽象语法结构的树状表现形式。Vue源码中虚拟DOM构建经历 template编译成AST语法树 -> 再转换为render函数 最终返回一个VNode(VNode就是Vue的虚拟DOM节点)
optimize
optimize的主要作用是标记static 的节点,在编译过程有某处的优化,而且在更新页面是会有path的过程
有diff的算法 减少比较 优化patch的性能
generate是最终将抽象语法树(abstract syntax tree或者缩写为AST)转化为render function 的过程
当我们有了这个虚拟的树之后,再交给一个patch函数,负责把这些虚拟DOM真正施加到真实的DOM上 。在这个过程中,Vue有自身的响应式系统来侦测在渲染过程中所依赖到的数据来源。在渲染过程中,侦测到的数据来源之后,之后就可以精确感知数据源的变动。到时候就可以根据需要重新进行渲染。当重新进行渲染之后,会生成一个新的树,将新树与旧树进行对比,就可以最终得出应施加到真实DOM上的改动。最后再通过patch函数施加改动。
vue的依赖追踪通过ES5的 Object.defineProperty 方法实现。比如,我们给它一个原生对象,Vue会遍历这个数据对象的属性,然后进行属性转换。每一个属性会被转换为一个 getter 和一个 setter。同时每个组件会有一个对应的 watcher 对象,这个对象的职责就是在当前组件被渲染的时候,记录数据上面的哪些属性被用到了。
经历:
当某个数据属性被用到时,触发 getter,这个属性就会被作为依赖被 watcher 记录下来。
整个函数被渲染完的时候,每一个被用到的数据属性都会被记录。
相应的数据变动时,例如给它一个新的值,就会触发 setter,通知数据对象对应数据有变化。
此时会通知对应的组件,其数据依赖有所改动,需要重新渲染。
对应的组件再次调动渲染函数,生成 Virtual DOM,实现 DOM 更新
作者:peng凯
链接:https://www.jianshu.com/p/86cc7d100f31
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
前端框架 渐进式框架相关推荐
- Vue.js构建用户界面的渐进式框架(前端学习笔记1.0)
文章目录 前言 一.Vue是什么? 二.前端核心分析 1.1.概述 1.2.前端三要素 1.3.结构层(HTML) 1.4.表现层(CSS) 1.5.行为层(JavaScript) 二.前端发展史 2 ...
- 好程序员web前端分享MVVM框架Vue实现原理
好程序员web前端分享MVVM框架Vue实现原理,Vue.js是当下很火的一个JavaScript MVVM库,它是以数据驱动和组件化的思想构建的.相比于Angular.js和react.js更加简洁 ...
- vue的渐进式框架的理解
打开vue的官网介绍,第一句就是"vue是一套用于构建用户界面的渐进式框架"."渐进式"这几个字在刚接触vue时并没有很注意到, 使用至今,再次打开官网,这几个 ...
- 对vue的理解 什么是渐进式框架
Vue 是一套用于构建用户界面的渐进式框架. 渐进式框架意思使vue不强求我们一次性接受并使用它的全部功能特性. (大概意思就是你可以只用我的一部分,而不是所有部分) 场景1:刚开始一个项目,开发者对 ...
- 前端Vue.js框架是什么?有哪些特点?
前端Vue.js框架是什么?有哪些特点?Vue.js是一个前端框架,用于构建用户界面的渐进式框架.在Vue中一个核心的概念是让用户不再操作DOM元素解放了用户的双手,让程序员可以更多的时间去关注业务逻 ...
- 为什么说Vue是渐进式框架?
渐进式 Vue是一套用于构建用户界面的渐进式框架.与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用.Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合. -- Vu ...
- 前端资源(框架,库,网站)
前端有很多优美的框架和库,以及一些资源很多的网站和博客,今天我准备和大家分享分享 框架 库 插件 工具 网站 (由于Vue和React的UI库比较多,我将在下一篇文章中展示) 框架 Vue: ...
- 渐进式框架 Vue.js
渐进式框架 Vue.js 1. Vue.js 概述 2 快速创建.部署.运行和打包一个 Vue.js 项目 2.1. 创建项目 2.2. 安装依赖 2.3. 项目部署和访问 2.4. 打包 Vue 项 ...
- Web前端响应式框架
响应式网页的设计与实现 最近学前端接触到了框架,介绍并记录自己的学习收获. 前言 各种移动智能设备的广泛应用,带动了互联网应用向移动平台方向发展,并呈现多元化的趋势.但智能手机.平板电脑.智能手表等多 ...
最新文章
- 研究人员开发出全3D打印离子动力纳米卫星推进器
- Java-Runoob:Java Stream、File、IO
- 学习笔记94—所有用过SCI-hub的科研工作者都应该知道的事
- 图解MapReduceMapReduce整体流程图
- 小程序获取头像试试水 02《 程序员变现指南之 微信QQ 小程序 真的零基础开发宝典》
- 很全的路由器默认初始密码集合.txt_UpSet——集合关系可视化神器
- java collectiongroup 类_Java中的collection集合类型总结
- 阿里云存储负责人吴结生:安全可靠是云存储立身之本, 智能技术将激活存储技术新变革...
- (4)建立一个标准尺寸的平面,并对其进行着色贴图、拉伸一定的厚度
- 计算机管理格式化没有顺利完成,内存卡无法格式化
- ArcPad 10 使用与同步 ArcGIS Server 的数据全攻略(二)
- H264视频编码原理基础分析
- android fragment 设置透明,DialogFragment背景透明设置
- IDEA 插件开发,显示气泡
- Scade Suite开发 ARINC 661 (2)Scade Suite基本操作
- 国际体验服服务器维护中怎么办,体验服维护中什么意思 | 手游网游页游攻略大全...
- double和float区别
- Java加密技术(四)——非对称加密算法RSA
- 企业邮箱使用安全注意事项
- 30行代码实现微信朋友圈自动点赞
热门文章
- 深入理解gradle中的task
- 万字长文深入理解java中的集合-附PDF下载
- Hive体系结构(四)注意事项与扩展特性
- each 数据获取attr_我背着CSDN偷偷记录了大半年我博客数据
- tf调不到keras怎么 回事_拼多多刷单关键词搜不到是怎么回事?如何解决?
- SpringBoot切换Tomcat容器,SpringBoot使用Jetty容器
- mysql max_allowed_packet查询和修改
- 【终极办法】Client does not support authentication protocol requested by server; consider upgrading mysql
- 关于DNS服务中查询域名的命令
- java用循环给map里面存值_Java中如何遍历Map对象的4种方法