render和虚拟DOM

render和虚拟DOM

作用:一个组件的内容有两种书写方式
  1. template:通过模板语法指定组件内容
  2. render函数:通过render来确定组件内容

用法:

<script>
export default {
    functional:true
    //h是一个函数,这个函数的返回值是VNode(虚拟DOM)
    render:(h)=>{
        retrun h('h1','这是一个h1标签,且是一个组件')
    }
}
</script>

可以用template创造组件,也可以用render创造组件

如果template配置项和render配置项同时存在,以render为准

响应式:数据发生变化会再次调用render函数,产生新的虚拟dom,与初始的虚拟dom比较,通过变动更新真实dom

在这里插入图片描述

优点:render相对template更加灵活

函数h中有三个参数:

  1. 参数1:标签名
  2. 参数2:对参数1中的标签的属性设置
  3. 参数3:参数1的子元素,也可以是一个VNode数组
h('div',{'class':'myDiv'},'我是div的内容')
<div class="myDiv">我是div的内容</div>

每一个组件都会有一个render函数,用来根据不同的数据生成不同的虚拟DOM

一般通过template定义组件,vue内部会自动生成render函数

虚拟DOM

真实DOM是一个对象,它的属性非常多,在浏览器中做dom操作会消耗性能
虚拟DOM也是一个对象,但是属性相对较少,消耗性能较少,它无法在浏览器中直接显示

为什么Vue中会用到虚拟DOM
  • 虚拟DOM比真是DOM体积小一些,操作相对来说性能消耗少一些,假设要在页面删除一个DOM元素,会重绘页面
  • 虚拟DOM才可能跨端(服务器端也可以用vue),跨平台。如果直接操作真实DOM,则与浏览器强制绑定在一起,vue就失去了更多的可能性

Vue如何使用虚拟DOM

  • 所有的template都会编译成render函数
  • render函数会根据当前的数据项,生成虚拟DOM
  • 再从虚拟dom转成真实dom
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值