VUE复习总结(一)

47 阅读3分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 9 天,点击查看活动详情

1.v-if和v-show的区别?

都可以控制元素的显示和隐藏

  • 1.v-show时控制元素的display值来让元素显示和隐藏; v-if显示隐藏时把DOM元素整个添加和删除
  • 2.v-if有一个局部编译/卸载的过程,切换这个过程中会适当的销毁和重建内部的事件监听和子组件;v-show只是简单的css切换
  • 3.v-if才是真正的条件渲染; v-show从false变成true的时候不会触发组件的声明周期,v-if会触发声明周期
  • 4.v-if的切换效率比较低,v-show的效率比较高

2.如何理解MVVM的?

前端开发的架构模式。

M:模型,对应的就是data的数据

V:视图,用户界面,DOM

VM:视图模型: vue的实例对象,连接view和Model的桥梁

核心是提供对View和ViewModel的双向数据绑定,当数据改变的时候,viewWNodel能监听到数据的变化,自动更新视图,当用户操作视图的时候,ViewModel也可以监听到视图的变化,然后通知数据进行改动,这就实现了双向数据绑定。

ViewModel通过双向绑定把view和IModel连接起来,他们之间的同步是自动的,不需要人为干涉,所以我们只需要关注业务逻辑即可,不需要操作DOM,同时也不需要关注数据的状态问题,因为是由MVM统一管理

3.v-for中的key值的作用是什么?

key属性是DOM元素的唯一标识作用:

  • 1.提高虚拟DOM的更新
  • 2.若不设置key,可能会触发一些bug
  • 3.为了触发过渡效果

4.说一下你对vue生命周期的理解。

组件从创建到销毁的过程就是它的生命周期

创建

beforeCreat :在这个阶段属性和方法都不能使用

created :这里是实例创建完成之后,在这里完成了数据监测,可以使用数据,修改数据,不会触发updated,也不会更新视图

挂载

beforeMount:完成了模板的编译,虚拟DOM也完成创建,即将渲染,修改数据,不会触发

updatedMounted:把编译好的模板挂载到页面,这里可以发送异步请求也可以访问DOM节点

更新

beforeUpdate:组件数据更新之前使用,数据是新的,页面上的数据时旧的,组件即将更新,准备渲染, 可以改数据

updated:render重新做了渲染,这时数据和页面都是新的,避免在此更新数据

销毁

beforeDestroy:实例销毁前,在这里实例还可以用,可以清除定时器等等

destroyed:组件已经被销毁了,全部都销毁

使用了keep-alive时多出两个周期:

activited: 组件激活时

deactivited:组件未激活时

未完待续……

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 9 天,点击查看活动详情