侧边栏壁纸
  • 累计撰写 781 篇文章
  • 累计创建 1 个标签
  • 累计收到 1 条评论
标签搜索

源码

Dettan
2022-01-09 / 0 评论 / 0 点赞 / 40 阅读 / 1,246 字
温馨提示:
本文最后更新于 2022-04-30,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。
/ 前端 / Vue / 源码
vnode = new VNode(
                      config.parsePlatformTagName(tag), //返回相同的值 。当前tag的标签名称
                      data, //tag标签的属性数据
                      children, //子节点
                      undefined,  //文本
                      undefined, //*当前节点的dom */
                      context // vm vue实例化的对象
                  );

var VNode = function VNode(
tag, /当前节点的标签名/
data, /当前节点对应的对象,包含了具体的一些数据信息,是一个VNodeData类型,可以参考VNodeData类型中的数据信息/
children, //子节点
text, //文本
elm, /*当前节点的dom */
context, /编译作用域/
componentOptions, /组件的option选项/
asyncFactory/异步工厂/) {
/当前节点的标签名/
this.tag = tag;

/*当前节点对应的对象,包含了具体的一些数据信息,是一个VNodeData类型,可以参考VNodeData类型中的数据信息*/
this.data = data;

/*当前节点的子节点,是一个数组*/
this.children = children;

/*当前节点的文本*/
this.text = text;

/*当前虚拟节点对应的真实dom节点*/
this.elm = elm;

/*当前节点的名字空间*/
this.ns = undefined;

/*编译作用域 vm*/
this.context = context;

this.fnContext = undefined;
this.fnOptions = undefined;
this.fnScopeId = undefined;

/*节点的key属性,被当作节点的标志,用以优化*/
this.key = data && data.key;

/*组件的option选项*/
this.componentOptions = componentOptions;

/*当前节点对应的组件的实例*/
this.componentInstance = undefined;

/*当前节点的父节点*/
this.parent = undefined;

/*简而言之就是是否为原生HTML或只是普通文本,innerHTML的时候为true,textContent的时候为false*/
this.raw = false;

/*静态节点标志*/
this.isStatic = false;

/*是否作为跟节点插入*/
this.isRootInsert = true;

/*是否为注释节点*/
this.isComment = false;

/*是否为克隆节点*/
this.isCloned = false;

/*是否有v-once指令*/
this.isOnce = false;

/*异步工厂*/
this.asyncFactory = asyncFactory;

this.asyncMeta = undefined;
this.isAsyncPlaceholder = false;

};

0

评论区