vue 的生命周期
vue的生命周期存在8个区间,分别是
**beforeCreate**(创建之前)、**Created**(创建后)、
**beforeMount**(挂载前,ps:在数据呈现在页面之前)
、**Mounted**(挂载后)、**beforeUpload**(更新前)、
**uploaded**(更新后) 、**beforeDestory**(销毁前)、
**Destoryed**(销毁后)。
从字面意思不难看出来,vue框架里一个页面的创建到销毁的过程中,
这些函数的运行顺序。
beforeCreate:
此时的页面属于虚无的状态,
你明白他存在,但是并不知道里面存在的是什么。
Created:
此时的页面属于混沌初期,data已经被定义并且
methods方法也可以被调用。
beforeMount:
此时的页面处于上古时期,此时数据处于预加载数据状态,
类似于盘古尚未开天辟地时的状态,此时$el 和 data
都已经初始化完毕,处于虚拟的 dom节点,模板在内存中
也编辑完成,用成语来说就是蓄势待发。
Mounted:
盘古开天辟地,女娲造人使万物富有灵性,
这之后的世界便是Mounted的最好诠释,但是事务总是会变的,
朝代的更替就会引发史实的更改 。页面v-model中的值抑或
是其他引用的值全部显示出来,此时处于实例的dom节点,创
建实例的最后一步,Mounted走完便代表着实例完成
beforeUpdate:
所有朝代在变更之前,会使史官记录前朝的罪行,抑或是升
华自己的形象,这便是beforeUpload所代表的行为,前朝与
后朝的习惯还未改变,data数据的更替尚未开始
Updated:
改朝换代之后,所触发的影响,便是Updated,此时所有的
事务都是新面貌了,data数据也是新的状态
beforeDestory:
灭国的前奏,烽火戏诸侯的行为便是beforeDestory函数的表达。
Destoryed:
任务结束,狼人胜利
正题:
为什么会出现响应数据的length(以length为例)获取不到呢?
1、为什么会出现这种情况:
数据的来源肯定是需要在我们初始化的时候,也就是在Mounted方法之前(包括)将数据赋予到数据中。但是我们忽略了,本身我们的其他对象的数据是通过调用该对象的方法来得到的。而在此之前,本页面的该对象数据是不存在的,亦或是null,亦或是undifine,所以我们在Upload之前来得到length的行为是不可取的。
2、取得参数:
在改变data中参数的数据时,也就是得到其他对象数据并赋值的时候便是updated函数的调用时刻,在这个时候所有数据都已经装载完毕,并且处于最新的状态,这个时候我们调用当前对象的数组长度便可以解决问题
END