获取vnode对象

  • vm.$slots对象下的所有值
  • vm.$scopedSlots对象的值返回一个函数,该函数执行后返回vnode对象
  • directives自定义指令中钩子函数的参数3和参数4,例如钩子函数bind:bind: function (el, binding, vnode, oldVnode) { ... )
  • render渲染函数的参数1是一个返回vnode的函数,例如这里的参数h:render: function (h) { ... }
  • 函数式组件context.children返回一个vnode数组
  • 函数式组件context.slots返回一个函数,该函数运行后返回一个vnode组成的对象

————————————————————————————————————————————————————

vnode构造函数传参

tag?: string,

data?: VNodeData,

children?: ?Array,

text?: string,

elm?: Node,

context?: Component,

  • 函数式组件和普通组件中该值不同

componentOptions?: VNodeComponentOptions,

asyncFactory?: Function

————————————————————————————————————————————————————

vnode对象的属性

this.tag = tag

this.data = data

  • 包含以下

    • attrs
    • class:通过v-bind绑定在组件上的class,格式和v-bind相同
    • staticClass:通过字符串绑定在组件上的class
    • hook
    • model
    • on
    • props
    • staticStyle:原生样式对象,通过v-bind绑定到style上的这里也会体现
    • style:通过v-bind绑定到组件上的对象

this.children = children

  • 当表单项插入el-form时,该值为undefined

this.text = text

this.elm = elm

this.ns = undefined

this.context = context

  • rendered in this component's scope(在此组件的范围内呈现)

this.fnContext = undefined

  • real context vm for functional nodes(功能节点的实上下文虚拟机)

this.fnOptions = undefined

  • for SSR caching(用于SSR缓存)

this.fnScopeId = undefined

  • functional scope id support(功能范围ID支持)

this.key = data && data.key

this.componentOptions = componentOptions

this.componentInstance = undefined

  • component instance(组件实例)

this.parent = undefined

  • component placeholder node(组件占位符节点)

this.raw = false

  • contains raw HTML? (server only)(包含原始HTML)

this.isStatic = false

  • hoisted static node(吊装静节点)

this.isRootInsert = true

  • necessary for enter transition check(输入转换检查所必需的)

this.isComment = false

  • empty comment placeholder?(空注释占位符)

this.isCloned = false

  • is a cloned node?(是克隆的节点)

this.isOnce = false

  • is a v-once node?

this.asyncFactory = asyncFactory

  • async component factory function(异步组件工厂函数)

this.asyncMeta = undefined

this.isAsyncPlaceholder = false

vnode的更多相关文章

  1. vue源码学习-vnode的挂载和更新流程

    概述 本文主要介绍在视图的渲染过程中,Vue 是如何把 vnode 解析并挂载到页面中的.我们通过一个最简单的例子来分析主要流程: <div id="app"> {{s ...

  2. Vue源码终笔-VNode更新与diff算法初探

    写完这个就差不多了,准备干新项目了. 确实挺不擅长写东西,感觉都是罗列代码写点注释的感觉,这篇就简单阐述一下数据变动时DOM是如何更新的,主要讲解下其中的diff算法. 先来个正常的html模板: & ...

  3. 说说VNode节点(Vue.js实现)

    写在前面 因为对Vue.js很感兴趣,而且平时工作的技术栈也是Vue.js,这几个月花了些时间研究学习了一下Vue.js源码,并做了总结与输出.文章的原地址:https://github.com/an ...

  4. Vue源码之 diff Vnode

    其实现在这个还没看懂,只能是初步看一下 _update调用__patch__方法,如果prevVnode(也就是oldVnode),旧vnode和新vnode对比,如果没有,就vnode就是vm.$e ...

  5. Vue 中是如何解析 template 字符串为 VNode 的?

    在接触 React 时候,我只了解到通过 babel 可以把 JSX 转成 VNode(通过调用 React.createElement 方法),但是对其具体是如何转换的却不了解. 很明显,回答失败. ...

  6. vue VNode如何使用,是什么东西?

    前言:element ui 中有些 demo 使用了 vue 的 VNode,但是 demo 毕竟不全,所以想要了解 VNode 到底是什么,如何写出符合自己业务的代码. vue 官网介绍:渲染函数 ...

  7. vue虚拟DOM源码学习-vnode的挂载和更新流程

    代码如下: <div id="app"> {{someVar}} </div> <script type="text/javascript& ...

  8. vnode的挂载和更新流程 -- 简介.

    来源 vnode原理 diff图解 <div id="app"> {{someVar}} </div> <script type="text ...

  9. 进程表/文件表/inode/vnode

    一般我们讲,都说进程有文件描述符表,文件描述符表中的指针指向某个inode,这中间省略了file,dentry对象,对准确理解VFS结构无益,本文结合网络所查,并根据APUE8.3和LKD13.11章 ...

  10. vue自定义指令VNode详解(转)

    1.自定义指令钩子函数 Vue.directive('my-directive', {bind: function () {// 做绑定的准备工作// 比如添加事件监听器,或是其他只需要执行一次的复杂 ...

随机推荐

  1. Go语言实现:【剑指offer】二叉树中和为某一值的路径

    该题目来源于牛客网<剑指offer>专题. 输入一颗二叉树的跟节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径.路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路 ...

  2. Django设置异步任务

    1.安装Django-celery 包:pip install django-celery==3.2.2 2.开启redis服务 需要使用redis做broker,所以在使用异步和定时任务时需要开启r ...

  3. flyway使用简介

    官网 https://flywaydb.org/ 背景 Flyway是独立于数据库的应用.管理并跟踪数据库变更的数据库版本管理工具.用通俗的话讲,Flyway可以像Git管理不同人的代码那样,管理不同 ...

  4. JS杨辉三角形

    题目:打印出杨辉三角形(要求打印出10行如下图) 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 分析: 1.第1列或列数=行数时,value=1 2.其余的值 ...

  5. 7.【Spring Cloud Alibaba】微服务的用户认证与授权

    有状态 vs 无状态 有状态 那么Session在何时创建呢? 当然还是在服务器端程序运行的过程中创建的,不同语言实现的应用程序有不同创建Session的方法,而在Java中是通过调用HttpServ ...

  6. Matplotlib绘制漫威英雄战力图,带你飞起来!

    目录 前言 期望功能 代码实现 一.导入matplotlib依赖包 二.支持显示中文 三.使用ggplot主题 四.根据能力项等分圆 五.生成n个子图 六.获取支持的颜色 六.绘制所有子图 更多示例 ...

  7. [译]Android Studio 3.6 新特性概览

    设计 设计编辑器 设计编辑器(比如布局编辑器和导航编辑器)现在提供了一个拆分视图模式,能够同时查看 UI 界面的 Design 视图和 Code 视图.拆分视图取代并改进了早期的预览窗口,并且可以对每 ...

  8. clr via c# 程序集加载和反射(2)

    查看,clr via c# 程序集加载和反射(1) 8,发现类型的成员: 字段,构造器,方法,属性,事件,嵌套类型都可以作为类型成员.其包含在抽象类MemberInfo中,封装了所有类型都有的一组属性 ...

  9. ASP.NET Core MVC学习笔记

    最近由于疫情紧张,遂在家办公,在领导的带领下,学习了一下.Net Core MVC. 一,构建web应用 1.选择c#-所有平台-web  找到ASP.NET Core web应用程序 2.项目命名之 ...

  10. Linux学习Day3:新手必须掌握的Linux命令(二)

    今天学习的命令都是运维工作中经常要用到的,非常实用,必须要用心学习,争取把这些命令烂熟于心,具体内容如下: 一.系统状态监测命令 1.ifconfig命令 用于获取网卡配置与网络状态等信息. [roo ...