vue源码逻辑
2019-10-18 11:13:45   0  举报             
     
         
 vue源码逻辑分析
    作者其他创作
 大纲/内容
 PaaS     sdk项目
  返回VNode
  编写完成可视化项目左侧为可拖拽组件右侧为该组件的可传参内容
  打包
  预览拖拽好的页面的时候
  用户手写 render 方法使用
  本地开发调试时
  判断tag,并确定tag的VNode类型(svg、html标签、空、组件等等)
  上线后
  是否有旧的vnode
  拖拽组件形成页面的时候
  通过 yarn link方式引入项目并设置 alias 配置路径
  写好的组件库
  确定children类型
  被模板编译成的 render 函数使用
  b.xxx、b.aaa操作正常执行
  此项目包含2个项目:1.运营可视化编辑的项目2.编写好的脚手架项目,里面存放着写好的所有组件,并用于在线构建打包3.后台项目,负责与第一个项目交互
  common组件 A其中import { b } from b.jsb.xxxb.aaa执行了一些列操作
  应用(应用中使用 sdk 打包按原有方式直接打包进应用中)
  所有执行完成后,运营编辑这边根据返回路径打开已打包好的页面
  initRender
  b.xxx、b.aaa这些操作不想被执行
  @platform 引用
  构造子类构造函数(使用原型继承的方式把纯对象转换成继承于Vue的构造器Sub,并扩展options等)
  函数式组件就是通过h函数返回一个vnode,函数式组件核心就是h函数
  是
  安装组件钩子函数
  否
  vm._c
  createElement\\h
  点击保存发起请求告诉node使用shelljs执行打包命令在线打包,内容如下,
  引入功能模块b.js
  amd格式 jssdk-designer.jssdk-preview.js
  实例化VNode,通过new VNode实例化vnode并返回
  可视化项目(项目1)
  仿真器(加载 amd 格式的 sdk 文件)
  NO_CHILDREN、SINGLE_VNODE、KEYED_VNODES
  VNode类型包括:ELEMENT_SVG、ELEMENT_HTML、FRAGMENT、PORTAL、COMPONENT_FUNCTIONAL、COMPONENT_STATEFUL_NORMAL
  引用
  脚手架项目,用components存放写好的组件(项目2)
  拖拽组件或填写参数最终会形成一个json
  node控制将获取到的json解析后,将componnets通过new Vue()中的components传入,props同理,通过template或者render函数展示dom,最终生成打包入口文件main.js文件组件引入(()=>import('xxxx')为此方式最后node命令执行webpack打包生成项目
  通过h函数返回的vnode以及其他信息通过深度遍历后执行container.appendChild(document.createElement(vnode.tag))添加到页面中
  vm.$createElement
  createComponent(当render的为一个组件时)
   
 
 
 
 
  0 条评论
 下一页