这是我参与更文应战的第11天,活动概略检查: 更文应战

一,前语

上篇,首要介绍了数组数据改动的观测状况,触及以下几个点:

  • 完成了数组数据改动被劫持后,已重写原型办法的具体逻辑;
  • 数组各种数据改动时的观测状况剖析;

目前为止,数据劫持的各种状况就全部剖析完了

本篇,Vue的数据烘托流程


二,如何烘托

1,代码回想

数据初始化完毕后,将开端进行视图烘托

export function initMih仓鼠饲养八大忌讳tml代码xin(Vue) {
VuhtmHTMLl文件怎样翻开e.prototype._init = functjava难学吗ion (算法导论options) {
const vm = this;
vm.$ojava开发ptio算法工程师ns = optijavaeeons;
initState(vmHTML);
if (vm.$options.el) {
// todo...
}
}
}

el 为 dom 挂载java初学处,如:

<div id算法的时刻java难学吗杂乱度是指什么=app>{{mesjavaeesage算法规算法的时刻复杂度是指什么划与剖析}}</div>

2,问题剖析html标签特征大全java难学吗

Vue 不会直接json解析操作字符串,可以梦想html标签一下Javajson

  • 从字符串中解html标签特征大全分出指令潮汕是哪个省的城市,以及进行值更新是比较困难的
  • 再考虑到节jsonp跨域原理点复用的场景,java语言更是无法经过比html文件怎么打开照字符串来完毕

3,Vue 视图烘托

vue 支撑 template 和 jsx:

  • 日常开发中,大部分会选用 tejava难学吗mphtml简略网页代码late 完毕模板的编写,由于 temjson数据plate 即简略又便利;
  • 而比较 template来讲,jsx 则加更灵活。写法上也显得略微杂乱一些;

三,烘托流程剖析

1,流程剖析

Vue 需要对Java template 进行解析,从而将 template长生十万年 模板语法改变算法的有穷性是指为 javascript 语法;

而这个转化的进程,就需要用到 ast 语法树(可仓鼠饲养八大忌讳描绘 css、js、html 等语法)

运用 ast 语法树来对 html 的语法结构进行描绘,根HTML据 ast 树形结构将代码重组为 js 语法

即后续长生十万年对 html 模板的操作,就都可以经过 js 来完毕,而不必考虑解析字符串了

2,Vue 模板编译原理

  1. 将 templa长沙市算法的五个特性气候te 模板编译为 render 函数
  2. 经过 rander 函数再回来虚拟 dom
  3. 再经过 diff 算法比对虚拟 dom

流程:template模板 -> render 函数 -> 虚拟dom -> dif陈涉世家翻译及原文f 算法


四,简略分html网页制造

template-explorer.vuejs.org/
【Vue2.x 源码学习】第十一篇 - Vue 的数据烘托流程

  • div 模板:毕竟被编译成为一个 render 办法,即 rejava开发nder 函数;
  • _c 函数:相当于 creajson数据teElemjava初学ent,创建div,内部包括html网页制造特征 id ,值为 app;算法导论
  • _v 函数:创建文本,行将_s(msg)创建为一个文本;
  • _s 函数:相当于 JSON.strinjsongifyjava面试题,假设吗模板参数msg为政策,经过 _s 使其转为 string

五,Vue 数据烘托的中心流程

1,初度烘托时

  1. template 模板被编译为 asjson格局t 语法树;
  2. 经过 ast 语法树生成 render 函数;
  3. 经过 render 函数回来 vnode 虚拟节点;
  4. 运用 vnode 虚拟节点生成实在 dom 并进行烘托;

2超神兽宠店,视图更新时

  1. 调用 render 函数生成新的html简单网页代码 vnohtml文件怎样翻开de算法的有穷性是指 虚拟节点;
  2. 经过 diff 算法对新老 vnode 虚拟节点进行比照;
  3. 根据虚拟节点比对h算法的时刻复杂度取决于tml算法标签效果,更新实在 dom;

六,完毕

本篇,首要超神兽宠店介绍了 vu算法的时刻复杂度取决于e 数据烘托中心流程

下一篇,javaeetemplate算法工程师和程序员差异 模板生成 ast 语法树