vue挂载阶段做了什么

worktile 其他 5

回复

共3条回复 我来回复
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    在Vue应用挂载阶段,以下是Vue所做的一些主要工作:

    1. 解析模板:Vue会解析组件的模板,将模板中的标记解析为虚拟DOM(Virtual DOM)节点树。

    2. 创建虚拟DOM:Vue会根据解析得到的虚拟DOM节点树,生成一个虚拟DOM对象。

    3. 编译模板:Vue会将模板中的动态数据绑定、指令、事件等编译成对应的渲染函数。

    4. 发布-订阅模式:Vue会在组件的数据和模板之间建立响应式关系。当组件的数据发生变化时,Vue会通知依赖这些数据的地方进行更新。

    5. 执行渲染函数:Vue将编译后的渲染函数执行,生成真实DOM节点。

    6. 提取依赖:在渲染过程中,Vue会建立组件与数据之间的依赖关系。当数据发生变化时,Vue会重新计算受影响的组件,更新相应的DOM。

    7. 虚拟DOM更新:当组件的数据发生变化时,Vue会使用新的数据重新生成虚拟DOM对象,并与上一次的虚拟DOM对象进行对比。通过虚拟DOM的diff算法,找出需要更新的地方,最小化真实DOM的操作。

    8. 更新真实DOM:根据diff的结果,Vue会更新真实DOM节点,将变化的部分进行更新。

    9. 生命周期钩子:在挂载阶段,Vue还会在特定的时机调用组件的生命周期钩子函数,例如created、mounted等。

    总的来说,Vue在挂载阶段主要完成了模板解析、虚拟DOM生成、编译模板、建立响应式关系、执行渲染函数、更新DOM等一系列工作,最终将组件渲染到页面上。

    1年前 0条评论
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    Vue的挂载阶段是指Vue实例被创建后,将其与页面中的DOM元素关联起来的过程。在挂载阶段,Vue会执行一系列的操作,包括以下几点:

    1. 解析模板:Vue实例的挂载过程首先会根据传入的模板,解析成虚拟DOM。模板可以是一个字符串,也可以是一个DOM元素。Vue使用HTML解析器将模板解析成一颗抽象语法树(AST),然后将模板中的指令、插值表达式等转换成相应的虚拟DOM节点。

    2. 创建虚拟DOM节点:在解析模板的过程中,Vue会根据解析的结果创建一颗虚拟DOM树。虚拟DOM树是一个轻量级的用来描述页面结构的对象,它可以进行快速的比较与更新。Vue通过遍历抽象语法树,将模板中的元素和属性转换成对应的虚拟DOM节点,并将它们组成一颗树结构。

    3. 初始化响应式数据:在创建虚拟DOM节点的同时,Vue会对Vue实例中的data属性进行数据劫持,将其转化为响应式数据。Vue使用的是ES5的Object.defineProperty方法来实现数据劫持,通过这种方式,当数据发生变化时,Vue能够自动更新相关的视图。

    4. 根据Virtual DOM创建真实DOM:通过虚拟DOM和真实DOM之间的比对,Vue能够确定需要更新的DOM节点。在挂载阶段,Vue会根据虚拟DOM创建对应的真实DOM,并将其插入到页面中。

    5. 执行生命周期钩子函数:在Vue实例挂载过程中,还可以定义一些生命周期钩子函数,这些钩子函数会在特定的时刻调用。常见的生命周期钩子函数有:beforeCreate、created、beforeMount、mounted等。在挂载阶段,Vue会依次调用这些钩子函数,允许开发者在不同的时刻执行一些自定义的逻辑操作。

    总结起来,Vue的挂载阶段主要包括解析模板、创建虚拟DOM节点、初始化响应式数据、根据Virtual DOM创建真实DOM以及执行生命周期钩子函数等操作。这些操作都是为了将Vue实例与页面中的DOM元素关联起来,使其能够响应数据的变化并更新相应的视图。

    1年前 0条评论
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    在Vue.js中,挂载阶段是Vue实例化和渲染模板的过程。在挂载阶段,Vue会执行一系列的操作来完成实例的初始化和模板的渲染。下面将从几个方面介绍Vue挂载阶段的具体操作。

    1.实例化过程
    在Vue的挂载阶段,首先要进行的操作是进行实例化。Vue会通过调用构造函数,创建一个Vue的实例对象。

    2.模板编译
    一旦实例化完成,Vue会开始对模板进行编译。模板编译是将模板字符串转换为可执行的渲染函数的过程。Vue内部使用的是模板编译器将模板转换为AST(抽象语法树),然后再将AST转换为可执行的渲染函数。编译过程包括以下几个步骤:

    • 解析模板字符串,生成AST
    • 静态节点标记:标记树上的静态节点,静态节点的值不会改变,可以进行优化
    • 生成渲染函数:根据AST生成可执行的渲染函数

    3.数据响应式
    在编译过程中,Vue会解析模板中的指令和数据绑定,并通过数据劫持的方式建立起数据和视图之间的响应关系。Vue会通过对data对象进行递归遍历,将data中的每个属性都转化为getter和setter,当属性被访问或者修改时,会触发相应的getter和setter,从而实现视图的更新。

    4.挂载DOM
    挂载DOM是指将编译之后的模板渲染到页面上的过程。在Vue的挂载阶段,需要将编译生成的可执行渲染函数执行一次,得到渲染结果,并将该结果插入到指定的DOM元素中。Vue会创建一个虚拟DOM树,将虚拟DOM树转换为真实DOM,并插入到页面上去。这个过程包括以下几个步骤:

    • 创建组件实例:创建组件实例,并将组件实例与模板进行关联
    • 执行渲染函数:执行编译生成的渲染函数,得到渲染结果
    • 创建真实DOM:将渲染结果转换为真实DOM
    • 插入到页面:将真实DOM插入到指定的位置

    5.生命周期钩子函数
    在挂载阶段,Vue提供了一些生命周期钩子函数,方便我们在特定时刻执行一些操作。常用的生命周期钩子函数包括beforeCreatecreatedbeforeMountmounted等。可以在这些钩子函数中执行一些初始化操作或者与服务端进行交互。

    总结
    Vue的挂载阶段涉及到实例化、模板编译、数据响应式、挂载DOM等操作。通过这些操作,Vue能够将实例和模板进行关联,实现数据和视图的响应式更新,最终将模板渲染到页面上。这些操作的完成,为后续的更新阶段和销毁阶段打下了基础。

    1年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部