- vue生命周期:
Vue实列有一个完整的生命周期,从开始创建,初始化数据,编译模板,挂载dom, 渲染-更新-渲染,卸载等一系列过程。
生命周期:beforeCreate——vue实例化对象创建之前
created——vue实例化对象创建之后
beforeMounted——vue-dom元素挂载之前
mounted——vue的dom元素挂载之后
beforeUpdate——vue的data中的数据更新之前
update——vue的data的值更新之后
beforeDestroy——销毁之前
destroy——销毁之后
-
当一个组件进入页面立即执行哪个周期函数
答:created,因为created执行力最快 -
如果请求数据的话,是在那个生命周期完成
created,因为created执行力最快;也有一种需要页面加载完成后再获取数据的话就是mounted因为mounted阶段是dom元素加载完毕
-
可以用created获取dom元素嘛?
答:不可以,因为dom元素是在mounted阶段加载完毕 -
为什么不用beforeMounted来获取?
答:因为beforeMounted是获取dom,没有数据,数据只能再mounted之后才能加载完毕,mounted不仅可以获取根节点和dom,还有数据 -
methods和computed的相同和区别之处 相同:
methods和computed每当触发重新渲染时, 调用方法再次执行函数,两种结果完全相同
区别:
methods:
-
监听是已经再data中定义的变量,当变量改变时watch就会去触发 -
当需要在数据变化执行异步或开销较大的操作,只能监听单数据类型computed:
-
变量在自己里面定义,不在data; -
基于它的响应式依赖进行缓存,可以监听对象某个具体属性 -
根据一个现在的数据去生成一个新的数据,并且两个数会永久的关系 -
当没有数据改变时,不会重新计算,而是直接使用缓存 -
初始化的时候就可以被监听和计算
- 什么时候用deep:true深度监听 例如data中有个obj对象,要想获取obj对象中的a就得使用深度监听
例如
data:{
obj:{
a:'1'
}
}
- ref的理解
作用:
是获取dom元素的一种方式
比如想要获取p标签,就先给ref取个名字,然后用$refs等于它的名字,就可以获取到了,就可以对dom元素进行操作
- v-for和v-if的优先级?
答:
v-for比v-if的优先级高,
在代码中可以体现出v-for比v-if优先解析,每次页面渲染都会先执行循环在判断
- 分别在什么时候使用created和mounted
created:是一进入页面,数据初始化创建完成的时候引用,一些依赖的引入mounted:是dom元素挂载渲染完成后的数据部分改变引用