2.Vue核心概念

一、完整流程

在这里插入图片描述

二、注入

在这里插入图片描述

  1. vue会将以下配置注入到vue实例。
  • data:和界面相关数据。
  • computed:通过已有数据得来的数据。
  • methods:方法。

三、什么是虚拟DOM树

  1. 直接操作真实dom会引发效率问题,vue使用虚拟DOM(vnode)的方式来描述要渲染的内容,vnode就是一个普通的对象,用于描述页面上应该有什么,比如
var vnode = {
  tag: "h1",
  children: [
    { tag: undefined, text: "第一个vue应用:Hello World"}
  ]
}
  • 上面的对象描述了页面上应该有一个h1节点,他有一个子节点,该节点是一个文本节点,内容为「第一个vue应用:Hello World」。

四、编译与渲染

  1. vue模版并不是真实的DOM,它会被编译成虚拟DOM,即模板生成虚拟DOM的过程叫做编译
<div id="app">
  <h1>第一个vue应用:{{title}}</h1>
  <p>作者:{{author}}</p>
</div>
//上面的模版会被编译为类似于下面的虚拟DOM
{
	tag:"div",
	children:[
		{
			tag:"h1",
			children:[
				text:"第一个vue应用,HelloWorld"
			]
		},
		{
			tag:"p",
			children:[
				text:"作者:wh"
			]
		}
	]
}
  1. 虚拟DOM树最终会生成真实DOM,生成真实DOM的过程叫做渲染
    在这里插入图片描述

五、挂载

  1. 将生成的真实dom树,放置到某个元素位置,称之为挂载
  2. 挂载方式
  • 通过el:"css选择器"进行配置。
  • 通过vue实例.$mount("css选择器")进行配置。

六、数据变化,重新如何渲染

  1. 数据发生变化时将会引发重新渲染,vue会比较新旧两颗vnode tree,找出差异,然后仅把差异部分应用到真实dom树中。
    在这里插入图片描述

七、生成虚拟dom树的逻辑?

在这里插入图片描述

  1. vue配置中有一个render函数,该render函数的返回值就是虚拟dom树
  • render函数用参数h创建虚拟节点,参数h是一个回调函数,h第一个参数是虚拟节点名,第二个参数是子节点数组。
render(h) {
    console.log("render");
    return h("div", [
        h("h1", `第一个vue应用:${this.title}`),
        h("p", `作者:${this.author}`),
    ]);
}
  1. 编译的优先级:render > template > el。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值