vue页面初始化数据,vue data里面用data的数据

  vue页面初始化数据,vue data里面用data的数据

  本文主要介绍了如何在vue中初始化数据data,具有很好的参考价值。希望对你有帮助。如有错误或不足之处,请不吝赐教。

  

目录

  如何初始化数据vue程序初始化过程初始化原因重写过程源代码过程实现初始化过程

  

如何初始化data数据

  在后台管理系统中,在创建和编辑同一个页面时,经常需要初始化数据。

  表单:{

  id: 0,

  名称: ,

  地点: ,

  号码: ,

  admin_uid: ,

  is_audit: 2,

  联系人: ,

  排序: ,

  is_network: 2,

  network_type: 1,

  is _投影仪:2,

  is_board: 2,

  is_live: 2,

  其他:“”

  },

  使用

  这个。$data.form=this。$options.data()。形式

  您可以初始化表单中的所有数据。

  

vue程序初始化流程

  

初始化

  在vue3中,vue2的新vue()方法不再用于程序初始化,而是使用createApp。createApp中发生了什么?

  

改写的原因

  CreateApp是Vue中的工厂函数,作为函数导入和调用。而函数式的优点是

  1.取消了原本挂载在Vue上的静态方法,变成了实例方法,可以减少内存占用,方便摇树,减少封装体积;

  2.因为函数和类装饰器很好的支持ts,所以通过函数调用可以更好的支持ts,提高类型支持。

  3.根组件的api,比如数据,要保持与子组件相同的格式,挂载要从$mount改为mount,这样简化了api,统一了api的一致性。

  4.安装在新Vue上的方法会造成全球污染,无法隔离。createApp可以相互独立,按需挂载。

  

流程实现

  mount

  const Vue={

  createApp(选项){

  //返回应用程序实例

  返回{

  安装(选择器){

  //获取渲染函数并编译结果

  //呈现dom并将其追加到宿主元素

  }

  编译(模板){

  //返回渲染

  返回函数render(){

  //描述视图

  }

  }

  }

  }

  }

  调用createApp时,如果options中没有render,则初始化组件,调用compile生成一个render,如果有render,则直接挂载;

  在Vue2中,比较替换附加元素,比较判断diff元素之间的差异,而在Vue3中,直接进行删除和重新添加。

  您可以在设置或数据中定义响应变量,设置具有更高的优先级。

  createApp

  Vue公开的两个初始化函数createApp和createRenderer,以及它们之间的调用关系。

  /* createApp*/暴露给Vue */

  函数createApp(选项){

  const renderer=vue . create renderer({

  /*定义一些特定于平台的API,一些实例*/

  aaa(){},

  bbb(){}

  })

  /*用户调用的createApp实际上是渲染器的create app */

  返回renderer.createApp()

  }

  函数createRenderer({aaa,bbb}){

  /*获取渲染器*/

  /*此createApp在函数内部*/

  返回createApp(选项){

  /*安装逻辑*/

  返回{

  /*返回应用程序实例*/

  }

  }

  }

  

源码流程

  1.用户调用createApp method="通过ensureRenderer获取渲染器。

  2.渲染器调用create render="调用工厂函数baseGreateRenderer,定义patch和diff等。最终会返回一个渲染spa页面的render,一个给ssr页面注水的hydrate,一个函数的createApp(不同于Vue的createApp)。

  3.程序的实例方法,如mount、get、set、use、mix等。将在函数的createApp中定义。

  4.装载实例方法将检查是否装载了根组件,以及使用什么方法装载它(spa/ssr)。

  5.render方法调用patch方法进行修补。

  6.patch方法根据传入节点的类型来判断挂载方法。如果是第一次挂载,会挂载组件,后面是元素(patch patch方法会把vnode转换成节点)。

  7.patch方法执行内部processComponent方法,最后是mountComponent方法,也就是Vue2中最后执行的$mount的方法。

  

初始化流程

  1.根组件的实例化:调用createComponentInstance。

  2.初始化根组件:调用setupComponent方法,也就是这个。Vue2中的$_init方法,用于合并选项并设置钩子和响应。

  3.安装渲染函数的副作用函数:setupRendererEffect。

  在Vue3中,取消了观察器,改变了副作用功能。副作用函数会在每次响应数据发生变化时重新执行,内部呈现函数的执行会触发依赖关系收集,这样响应数据发生变化时响应组件也会更新。

  PS:与react中的useEffect不同,useEffect需要手动收集依赖关系,而Vue中的Effect()会自动收集依赖关系。

  以上个人经历,希望能给大家一个参考,也希望大家多多支持我们。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: