全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Vue2.x中的Render函数详解

Render函数是Vue2.x版本新增的一个函数;使用虚拟dom来渲染节点提升性能,因为它是基于JavaScript计算。通过使用createElement(h)来创建dom节点。createElement是render的核心方法。其Vue编译的时候会把template里面的节点解析成虚拟dom;

什么是虚拟dom?

虚拟dom不同于真正的dom,它是一个JavaScript对象。当状态发生变化的时候虚拟dom会进行一个diff判断/运算;然后判断哪些dom是需要被替换的而不是全部重绘,所以性能会比dom操作高很多。

下面看一张Aresn大神总结的一张图:

Vue2.x版本中VNode属性:

tag:当前节点标签名,

data:当前节点数据对象,

children:子节点数组,

text:当前节点文本,

elm:当前虚拟节点对应的真实dom节点,

ns:节点的namespace( 名称空间),

content:编译作用域,

functionalContext:函数化组件的作用域,即全局上下文,

key:节点标识,有利于patch优化,

componentOptions:创建组件实例时的options,

child:当前节点对应的组件实例,

parent:组件的占位节点,

raw:原始html,

isStatic:是否是静态节点,

isRootInsert:是否作为跟节点插入,若被<transition>包裹的节点,该属性值为false,

isComment:是否为注释节点,

isCloned:是否为克隆节点,

isOnce:是否只改变(渲染)一次,或是否有v-once指令;

其中这里面又有几种VNode类型:

Aresn大神总结的很好:

TextVNode:文本节点,

ElementVNode:普通元素节点,

ComponentVNode:组件节点,

EmptyVNode:空节点,或者说是没有内容的注释节点,

CloneVNode:克隆节点,可以是以上任意类型节点

说了那么多;到底什么时候用虚拟dom才比较好呢?其实 我们使用的单文件组件就已经够好了。但是当某些代码冗余的时候如果写单文件组件的话会有好多重复的内容;

接下来介绍其核心函数;

createElement:

createElement接收3个参数:

第一个参数可以是HTML标签名,组件或者函数都可以;此参数是必须的;

第二个为数据对象(可选);

第三个为子节点(可选)。

附上一个非常简单的createElement函数demo;

 var app = new Vue({
   el:"#app",
   render:createElement => {
     eturn createElement(
       'h2',
       [
         createElement(
           'a',
           {
             domProps:{
               href:"#biaoti"
             }
           },
           "标题"
         )
        ]      
       );
 
     }
 });

这只是一个createElement函数的使用,而Vue2中VNodeData

class: v-bind/:class

style:v-bind/:style

attrs:dom属性,如id

props:props,

on:自定义事件等,

 nativeOn:原生事件

像这些也可以在render函数中实现,若VNode是组件或含有组件的slot,那么VNode必须是唯一。

像平常开发过程中单文件组件中template写法更为简单,可读性也高。如果是webpack进行打包的话template也会预编译成render函数。

这里demo栗子暂时还没写那么多。这里只是一个简单的介绍。若有更好的欢迎大家一起学习讨论。


# Vue  # Render  # Vue.js  # Render函数  # vue2从template到render模板编译入口详解  # 基于vue2.0动态组件及render详解  # vue2 中使用 render 函数编写组件的方式  # 那么多  # 大神  # 可选  # 是一个  # 很好  # 会有  # 好了  # 还没  # 也会  # 第一个  # 说了  # 什么时候  # 又有  # 它是  # 第二个  # 比较好  # 这只  # 几种  # 自定义  # 因为它 


相关文章: 最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?  油猴 教程,油猴搜脚本为什么会网页无法显示?  济南企业网站制作公司,济南社保单位网上缴费步骤?  成都品牌网站制作公司,成都营业执照年报网上怎么办理?  清除minerd进程的简单方法  在线制作视频网站免费,都有哪些好的动漫网站?  邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?  如何选择美橙互联多站合一建站方案?  建站主机选购指南:核心配置优化与品牌推荐方案  官网建站费用明细查询_企业建站套餐价格及收费标准指南  建站之星如何保障用户数据免受黑客入侵?  如何通过宝塔面板实现本地网站访问?  建站VPS推荐:2025年高性能服务器配置指南  如何在Windows环境下新建FTP站点并设置权限?  建站之星CMS建站配置指南:模板选择与SEO优化技巧  非常酷的网站设计制作软件,酷培ai教育官方网站?  厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?  h5网站制作工具有哪些,h5页面制作工具有哪些?  实现点击下箭头变上箭头来回切换的两种方法【推荐】  建站三合一如何选?哪家性价比更高?  已有域名能否直接搭建网站?  建站之星安装提示数据库无法连接如何解决?  已有域名如何免费搭建网站?  微信h5制作网站有哪些,免费微信H5页面制作工具?  实惠建站价格推荐:2025年高性价比自助建站套餐解析  制作宣传网站的软件,小红书可以宣传网站吗?  太原网站制作公司有哪些,网约车营运证查询官网?  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  如何选择服务器才能高效搭建专属网站?  网站制作大概要多少钱一个,做一个平台网站大概多少钱?  装修招标网站设计制作流程,装修招标流程?  简单实现Android验证码  如何用5美元大硬盘VPS安全高效搭建个人网站?  青岛网站建设如何选择本地服务器?  如何选择可靠的免备案建站服务器?  如何快速启动建站代理加盟业务?  如何在阿里云ECS服务器部署织梦CMS网站?  c# 在高并发下使用反射发射(Reflection.Emit)的性能  建站之星微信建站一键生成小程序+多端营销系统  ,石家庄四十八中学官网?  c# Task.ConfigureAwait(true) 在什么场景下是必须的  网站网页制作专业公司,怎样制作自己的网页?  北京专业网站制作设计师招聘,北京白云观官方网站?  广州营销型建站服务商推荐:技术优势与SEO优化解析  浙江网站制作公司有哪些,浙江栢塑信息技术有限公司定制网站做的怎么样?  建站之星上传入口如何快速找到?  在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?  建站主机是否属于云主机类型?  如何在景安云服务器上绑定域名并配置虚拟主机?  专业网站建设制作报价,网页设计制作要考什么证? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。