我的编程空间,编程开发者的网络收藏夹
学习永远不晚

vue中如何初始化data数据

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

vue中如何初始化data数据

如何初始化data数据

后台管理系统中,新建和编辑使用同一个页面,常常需要初始化data数据。

form: {
                id: 0,
                name: '',
                place: '',
                number: '',
                admin_uid: '',
                is_audit: 2,
                contact: '',
                sort: '',
                is_network: 2,
                network_type: 1,
                is_projector: 2,
                is_board: 2,
                is_live: 2,
                others:''
      },

使用

this.$data.form = this.$options.data().form

可将form中的所有数据初始化。

vue程序初始化流程

初始化

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

改写的原因

createApp是一个Vue中的工厂函数,以函数的方式进行导入和调用。而函数式的好处是

1、消灭了原来挂载在Vue上的静态方法,变成实例方法,可以减少内存占用,便于tree-shaking,减小了打包体积;

2、因为函数式和class装饰器对ts的支持好,使用函数的方式调用,可以更好的支持ts,提高类型支持

3、根组件的api,如data要和子组件的api保持相同的格式,挂载从$mount改为mount,简化了api并统一了api的一致性

4、new Vue中挂载的方法会造成全局污染,不能独立出来,createApp可以相互独立,并按需挂载。

流程实现

mount

const Vue = {
	createApp(options) {
		//返回app实例
		return {
			mount(selector){
				// 获取渲染函数,编译结果
				// 渲染dom,追加到宿主元素
			}
			compile(template){
			//返回render
				return function render(){
					//描述视图
				}
			}
		}
	}
}

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

Vue2中追加元素使用比较替换的方式,diff元素间区别进行对比判断,Vue3中则是直接进行删除重加。

可以在setup或者是data中定义响应式变量, setup的优先级更高。

createApp

Vue暴露的两个初始化的函数,createApp和createRenderer,他们之间的调用关系


function createApp(options){
	const renderer =  Vue.createRenderer({
		
		aaa(){},
		bbb(){}
	})
	
	return renderer.createApp()
}

function createRenderer({aaa,bbb}){
	
	
	return createApp(options){
		
		return {
			
		}
	}
}

源码流程

1、用户调用createApp方法 =》 通过ensureRenderer得到渲染器

2、渲染器调用createRender =》※调用工厂函数baseGreateRenderer,这个函数中定义了patch和diff等,最终会return一个render用来给spa页面进行渲染,一个hydrate用来给ssr页面进行注水,还有一个函数的createApp(不同于Vue的createApp)

3、在函数的createApp中会定义程序的实例方法,如mount,get,set,use,mixin等

4、mount实例方法会去查看是否有根组件挂载,使用什么方法进行挂载(spa/ssr)

5、render方法调用patch方法进行打补丁

6、patch方法根据传入的节点类型进行挂载方法的判断,如果首次挂载则为挂载component,之后是挂载element(patch方法会将vnode转化为node节点)

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

初始化流程

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

2、初始化根组件:调用setupComponent方法,也就是Vue2中的this.$_init方法,用来将选项进行合并,并设置钩子和响应式

3、安装render函数的副作用函数:setupRendererEffect

在Vue3中取消了watcher改为了副作用函数,副作用函数会在每次响应式数据发生变化的时候重新执行,内部的render函数的执行会触发依赖收集,这样当响应式数据变化时,响应式组件就会更新。

PS:与react中的useEffect不同的方面是,useEffect需要手动的收集依赖,而Vue中的effect()会自动的收集依赖。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

vue中如何初始化data数据

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Vue中data数据初始化方法详解

这篇文章主要介绍了Vue中data数据初始化方法,数据初始化是在组件实例化时发生的,在组件中,可以通过data选项来定义组件的初始数据,需要详细了解可以参考下文
2023-05-19

GO如何初始化数据结构

本篇内容主要讲解“GO如何初始化数据结构”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“GO如何初始化数据结构”吧!使用 golang 进行编码过程中,你们都是如何初始化数据结构的呢?GO 里面提
2023-07-04

C#中如何初始化数组

这篇文章给大家介绍C#中如何初始化数组,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。C#数组初始化1、int[] iArray = new int[3]{2, 3, 4} 花括号被称为数组初始化器,数组初始化器只能在声
2023-06-17

从oracle到hdfs如何初始化数据

这篇文章主要讲解了“从oracle到hdfs如何初始化数据”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“从oracle到hdfs如何初始化数据”吧!### oracle GoldenGate
2023-06-03

vue如何初始化加载动画

本文小编为大家详细介绍“vue如何初始化加载动画”,内容详细,步骤清晰,细节处理妥当,希望这篇“vue如何初始化加载动画”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1.在入口文件index.html中加入loa
2023-07-04

java如何初始化数组

什么是初始化在Java程序开发中,使用数组之前都会对其进行初始化,这是因为数组是引用类型,声明数组只是声明一个引用类型的变量,并不是数组对象本身,只要让数组变量指向有效的数组对象,程序中就可使用该数组变量来访问数组元素。 (推荐学习:java课程)所谓数组
java如何初始化数组
2017-08-16

java数组如何初始化

Java语言中数组必须先初始化,然后才可以使用。所谓初始化就是为数组的数组元素分配内存空间,并为每个数组元素附初始值。注意:数组完成初始化后,内存空间中针对该数组的各个元素就有个一个默认值:基本数据类型的整数类型(byte、short、int、long)默认值
java数组如何初始化
2020-04-23

java 如何初始化数组

一、什么是初始化在Java程序开发中,使用数组之前都会对其进行初始化,这是因为数组是引用类型,声明数组只是声明一个引用类型的变量,并不是数组对象本身,只要让数组变量指向有效的数组对象,程序中就可使用该数组变量来访问数组元素。所谓数组初始化就是让数组名指向数组对
java 如何初始化数组
2018-10-10

java数组如何初始化?

Java语言中数组必须先初始化,然后才可以使用。所谓初始化就是为数组的数组元素分配内存空间,并为每个数组元素附初始值。注意:数组完成初始化后,内存空间中针对该数组的各个元素就有个一个默认值: ● 基本数据类型的整数类型(byte、short、int、long)
java数组如何初始化?
2018-03-13

js如何初始化数组

这篇文章给大家分享的是有关js如何初始化数组的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。初始化数组如果想要初始化一个指定长度的一维数组,并指定默认值,可以这样:const array = Array(6).fi
2023-06-17

java中如何初始化MediaRecorder

小编给大家分享一下java中如何初始化MediaRecorder,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!java中初始化MediaRecorder实现代码:
2023-05-30

如何在Java中初始化二维数组

本篇文章给大家分享的是有关如何在Java中初始化二维数组,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。常用的java框架有哪些1.SpringMVC,Spring Web MV
2023-06-14

C#中如何初始化对象

C#中如何初始化对象,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。具体示例如下:classPoint { publicintX{get;set;} publicint
2023-06-17

如何在Java中静态初始化数组

这期内容当中小编将会给大家带来有关如何在Java中静态初始化数组,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Java可以用来干什么Java主要应用于:1. web开发;2. Android开发;3. 客
2023-06-14

编程热搜

目录